【问题标题】:Select a datetime data set by day plus one in sql在sql中选择一个按天加一个的日期时间数据集
【发布时间】:2015-11-08 16:05:35
【问题描述】:

我正在开发一个 C# 程序,我必须从 2012 SQL 服务器中选择一些特定的日期时间记录。 数据记录有两个 DateTime 列,开始和结束。如果开始和结束不是同一天,我只需要数据。

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) )

结果应该是 start + 1 day = end 的所有行(忽略 DateTime 中的时间),所以我可以在我的 c# Programm 中处理数据。

希望你能帮帮我,谢谢。

【问题讨论】:

  • CAST(start AS DATE) = CAST(dateadd(dd,-1,end) AS DATE)

标签: sql sql-server tsql datetime


【解决方案1】:

您可以使用DATEDIFF

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

LiveDemo

【讨论】:

  • 非常适合我,谢谢!很高兴知道有这样的功能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-30
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多