2013-03-07 32 views
1

我有一個日期,我想整理到第二天。在T-SQL中將DateTime舍入到第二天?

例如

SomeDate DATETIME, 
NewDate DATETIME 

SomeDate = '01/05/2012 8:00:0 PM' 
NewDate = Get the next day value here (in this sample it would be '01/05/2012 8:00:0 PM' + 4 Hours which is '02/05/2012 00:00:00 AM') 

那麼簡單的話,我希望是:

NewDate = '02/05/2012 00:00:00 AM' 

有快捷方式?

謝謝!

+1

1毫秒足以明天去?是1納秒?是1微微秒? – 2013-03-07 21:43:29

+0

現在時間旅行很快,SQL;) – Learner 2013-03-07 21:48:25

回答

4

這應該工作:

SELECT DATEADD(Day, DATEDIFF(Day, 0, SYSDATETIME()), 1) 
+0

完美@JodyT。謝謝! – Learner 2013-03-07 21:42:50

1

NextDay從今天

Select DateAdd(day, Datediff(day, 0, getdate()) +1, 0) 

月:

Select Dateadd(month, 1, Dateadd(Day, Datediff(day, 0, getdate()), 0)) 
+0

這也行!謝謝。 – Learner 2013-03-07 21:44:13

+0

沒有概率,請記住,您可以使用dateadd和datediff的許多組合來動態獲取許多不同的日期。 – djangojazz 2013-03-07 22:12:08

3

總是幫第二天你可以這樣做:

SELECT DATEADD(day, 1, CAST(@date As Date)) 

如果你想「圓圓」的DateTime值最接近的一整天,你可以這樣做:

SELECT 
    CASE WHEN CAST(@date As Time) < '12:00' THEN 
     CAST(@date As Date) 
    ELSE 
     DATEADD(day, 1, CAST(@date As Date)) 
    END 
+0

還有一種方法可以做到這一點。工作正常。謝謝! – Learner 2013-03-08 17:41:25