2015-11-08 172 views
1

我正在處理一個C#程序,我必須從2012 SQL Server中選擇一些特定的日期時間記錄。 數據記錄有兩個DateTime列,開始和結束。如果開始和結束不是同一天,我只需要數據。在sql中選擇日期加一的日期時間數據

SELECT * FROM table WHERE CAST(start AS DATE) != CAST(end AS DATE) 

但這還不是問題。我需要一些更具體的內容,如果結束日期是開始日期加上一天,我只想要數據,無論他們的展位時間是多少。

我做了一些僞代碼,不幸的是我的SQL技能非常有限。

SELECT Convert(date, getdate()) start 
FROM table 
WHERE EXISTS 
(SELECT Convert(date, getdate())Ende FROM table WHERE end = dateadd(day,1,start)) 

結果應該是所有行啓動+ 1天=結束(忽略了日期時間的時間),所以我可以在我的C#PROGRAMM中的數據。

我希望你能幫助我,謝謝。

+1

'CAST(開始AS DATE)= CAST(DATEADD(DD,-1,端)AS DATE)' –

回答

3

可以使用DATEDIFF

SELECT * 
FROM table 
WHERE DATEDIFF(d, [start], [end]) = 1; 

LiveDemo

+1

爲我完美工作,謝謝!很高興知道有這樣的功能。 – user3868224

相關問題