在 sql 服务器中获取一天的结果



>我正在尝试从 1 天返回的结果,例如,如果我有一个工作在今天凌晨 1:00:00 运行 22/05/2018 我希望它返回 21/05/2018 00:00:00 am 到 21/05/2018 23:59:59 pm 的结果。

我试过下面的

select *
from table
where CreatedDateTime BETWEEN DATEADD(day, -1, GETDATE()) AND DATEADD(day, -0, GETDATE()) // it brings back everything from yesterday and today

我创建的日期时间如何在数据库2018-05-21 16:39:09.4830000中存储的示例

bewteen运算符根据>=<=筛选日期

你需要:

select *
from table
where CreatedDateTime >= DATEADD(day, -1, GETDATE()) AND 
CreatedDateTime <  GETDATE();

我怀疑你需要cast(... as date)如果是这样,你可以直接表达为

select *
from table
where cast(CreatedDateTime as date) = cast(DATEADD(day, -1, GETDATE()) as date);

这是一个关于在查询中过滤日期范围的好博客

SELECT *
FROM table
WHERE CreatedDateTime BETWEEN GETDATE() -1 AND GETDATE()

最新更新