Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
DATEADD SQL 2008下一次和下一个日期_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

DATEADD SQL 2008下一次和下一个日期

DATEADD SQL 2008下一次和下一个日期,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,sql 2008的select语句需要帮助。 下面是我的表格: ID Date Time Value 1 2014-01-01 00:00:00 00:00:00 A 2 2014-01-01 00:00:00 01:00:00 B 3 2014-01-01 00:00:00 02:00:00 C 4 2014-01-01 00:00:00 03:00:00 D 5 2014-01-01 00:00:00 04:00:00 E --- ff.

sql 2008的select语句需要帮助。
下面是我的表格:

ID Date                Time     Value
1  2014-01-01 00:00:00 00:00:00 A
2  2014-01-01 00:00:00 01:00:00 B
3  2014-01-01 00:00:00 02:00:00 C
4  2014-01-01 00:00:00 03:00:00 D
5  2014-01-01 00:00:00 04:00:00 E
  --- ff. ---
23 2014-01-01 00:00:00 23:00:00 Y
24 2014-01-01 00:00:00 00:00:00 Z
25 2014-01-02 00:00:00 00:00:00 AA
26 2014-01-02 00:00:00 01:00:00 AB
27 2014-01-02 00:00:00 02:00:00 AC
问题是,如何使用SQL 2008中带有
DateAdd
函数的Select语句知道
Date
Time
的下一个值

如果日期是2014-06-01,时间是23:00,那么下一个日期仍然是2014-06-01。下一次是00:00

如果日期为2014-06-01,时间为00:00,则下一个日期为2014-06-02。下一次是00:00

请给出建议。
非常感谢。


在这方面,

id=24的行是错误的,对于其余行,只需获得每行的下一个值:

select id, date, time, value, 
    cast(floor(cast(DateAdd(hour, 1, date + time) as float)) as datetime) as nextdate, 
    convert(time, DateAdd(hour, 1, date + time), 108) as nextTime 
    from tableName

id=24的行是错误的,对于其余行,只需获得每行的下一个值:

select id, date, time, value, 
    cast(floor(cast(DateAdd(hour, 1, date + time) as float)) as datetime) as nextdate, 
    convert(time, DateAdd(hour, 1, date + time), 108) as nextTime 
    from tableName

id=24的行是错误的,对于其余行,只需获得每行的下一个值:

select id, date, time, value, 
    cast(floor(cast(DateAdd(hour, 1, date + time) as float)) as datetime) as nextdate, 
    convert(time, DateAdd(hour, 1, date + time), 108) as nextTime 
    from tableName

id=24的行是错误的,对于其余行,只需获得每行的下一个值:

select id, date, time, value, 
    cast(floor(cast(DateAdd(hour, 1, date + time) as float)) as datetime) as nextdate, 
    convert(time, DateAdd(hour, 1, date + time), 108) as nextTime 
    from tableName

试试这个,它适用于sql server 2008+:

SELECT 
  id, 
  date, 
  time, 
  value, 
  CAST(DATEADD(hh, 1, date + time) as DATE) extdate, 
  CAST(DATEADD(hh, 1, date + time) as time(0)) nextTime 
FROM yourtable

试试这个,它适用于sql server 2008+:

SELECT 
  id, 
  date, 
  time, 
  value, 
  CAST(DATEADD(hh, 1, date + time) as DATE) extdate, 
  CAST(DATEADD(hh, 1, date + time) as time(0)) nextTime 
FROM yourtable

试试这个,它适用于sql server 2008+:

SELECT 
  id, 
  date, 
  time, 
  value, 
  CAST(DATEADD(hh, 1, date + time) as DATE) extdate, 
  CAST(DATEADD(hh, 1, date + time) as time(0)) nextTime 
FROM yourtable

试试这个,它适用于sql server 2008+:

SELECT 
  id, 
  date, 
  time, 
  value, 
  CAST(DATEADD(hh, 1, date + time) as DATE) extdate, 
  CAST(DATEADD(hh, 1, date + time) as time(0)) nextTime 
FROM yourtable


是否要添加小时数?是否要查找不同的天数?请清楚地定义问题并提供预期输出。如果不清楚,请抱歉。我想知道下一个日期和时间。。如果2014-06-01 23:00,那么下一个日期仍然是2014-06-01,下一个时间是00:00:00。如果2014-06-01 00:00,则下一个日期是2014-06-02,下一个时间是00:00:00。希望这是清楚的。谢谢你。有两种表示午夜的表示法,而同样的表示法意味着一天中有两个不同的午夜,这似乎真的令人困惑。你确定你想要/需要这个吗?传统的做法是,一天开始时只有00:00:00代表午夜(或者,在某些组织中,为了避免写00:00以避免歧义),您想增加小时数吗?您在寻找不同的日子吗?清楚地定义您的问题并提供预期的输出。如果不清楚,请抱歉。我想知道下一个日期和时间。。如果2014-06-01 23:00,那么下一个日期仍然是2014-06-01,下一个时间是00:00:00。如果2014-06-01 00:00,则下一个日期是2014-06-02,下一个时间是00:00:00。希望这是清楚的。谢谢你。有两种表示午夜的表示法,而同样的表示法意味着一天中有两个不同的午夜,这似乎真的令人困惑。你确定你想要/需要这个吗?传统的做法是,一天开始时只有00:00:00代表午夜(或者,在某些组织中,为了避免写00:00以避免歧义),您想增加小时数吗?您在寻找不同的日子吗?清楚地定义您的问题并提供预期的输出。如果不清楚,请抱歉。我想知道下一个日期和时间。。如果2014-06-01 23:00,那么下一个日期仍然是2014-06-01,下一个时间是00:00:00。如果2014-06-01 00:00,则下一个日期是2014-06-02,下一个时间是00:00:00。希望这是清楚的。谢谢你。有两种表示午夜的表示法,而同样的表示法意味着一天中有两个不同的午夜,这似乎真的令人困惑。你确定你想要/需要这个吗?传统的做法是,一天开始时只有00:00:00代表午夜(或者,在某些组织中,为了避免写00:00以避免歧义),您想增加小时数吗?您在寻找不同的日子吗?清楚地定义您的问题并提供预期的输出。如果不清楚,请抱歉。我想知道下一个日期和时间。。如果2014-06-01 23:00,那么下一个日期仍然是2014-06-01,下一个时间是00:00:00。如果2014-06-01 00:00,则下一个日期是2014-06-02,下一个时间是00:00:00。希望这是清楚的。谢谢你。有两种表示午夜的表示法,而同样的表示法意味着一天中有两个不同的午夜,这似乎真的令人困惑。你确定你想要/需要这个吗?传统的做法是在一天开始的时候只有00:00:00代表午夜(或者,在一些组织中,为了避免歧义,避免写00:00)