DATEADD SQL 2008下一次和下一个日期
sql 2008的select语句需要帮助。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.
下面是我的表格:
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)