首页 > 解决方案 > 在 sql server 中获取一天的结果

问题描述

我试图从 1 天前得到结果,例如,如果我有一份工作在 2018 年 5 月 22 日凌晨 1:00:00 运行,我希望它能够取回 21/05/2018 00 的结果上午 00:00 至 2018 年 5 月 21 日下午 23:59:59。

我试过以下

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

标签: sql-server

解决方案


操作员根据和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);

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


推荐阅读