【问题标题】:How to get all records for the last 2 days in SQL如何在 SQL 中获取过去 2 天的所有记录
【发布时间】:2015-02-24 16:13:53
【问题描述】:

我正在尝试获取过去 2 天的所有记录,但不包括今天的日期。我想获取仅包含过去 2 天提交日期的名称和位置。 date_submitted 的数据类型是 datetime

select name, location 
from myTable 
where date_submitted in (select CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME))

【问题讨论】:

  • 为什么将日期转换为浮点数?
  • @Zane:这似乎是截断日期的最佳执行方式:stackoverflow.com/a/923322/993547
  • 您的参考资料似乎表明Cast( GetDate() as Date ) 是首选,因为它被证明可以正常工作,并且不依赖于DATETIME 的当前二进制格式。你的意图也更清晰,清晰在现实世界中具有相当大的价值。

标签: sql sql-server tsql


【解决方案1】:

不要使用in,使用>=。你也可以使用dateadd

where date_submitted >= cast(dateadd(day, -2, getdate()) as date)
and   date_submitted < cast(getdate() as date)

【讨论】:

  • 如何处理“排除今天的日期”?
猜你喜欢
  • 2013-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-05
  • 2013-07-08
  • 1970-01-01
相关资源
最近更新 更多