2015-11-08 165 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

相关问题