2014-06-20 41 views
0

需要幫助的select語句SQL 2008
下面是我的表:
DATEADD SQL 2008下一個時間和一個日期

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 

的問題是,我怎麼能知道DateTime下一個值在SQL 2008中使用Select Statement與DateAdd函數?

如果日期是2014-06-01,時間是23:00,那麼下一個日期仍然是2014-06-01。下一次是00:00

如果日期是2014-06-01,時間是00:00,那麼下一個日期是2014-06-02。下一次是00:00

請教。
非常感謝。

問候,

+0

要添加小時? – Azar

+0

你在尋找不同的日子嗎? –

+2

明確定義您的問題並提供預期輸出。 – Jesuraja

回答

1

與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 
+0

是的隊友,你是對的。非常感謝。 – Haminteu

2

試試這個,它適用於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 
+0

是的隊友,這一個也工作。乾杯, – Haminteu

相關問題