sql-server - 在 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
解决方案
操作员根据和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);
这是一个关于在查询中过滤日期范围的好博客。
推荐阅读
- spring-boot - Spring Boot JPA 获取父子节点
- python - 如何将 conda 包添加到 docker compose celery?
- discord.py - 是否可以在代码中更改 discord.py 机器人名称的颜色?
- owl - OWL 不相交的元素集
- web - 是否有分析服务可以为应用程序中的不同用户提供分析和统计信息?
- python - kivymd:AttributeError:“超级”对象没有属性“__getattr__”
- php - PHP Cookie 未分配给全局数组
- javascript - 需要将数据从产品页面获取到购物车作为滑块侧面板,并让 mysql 数据库数据显示我的字段
- r - 如何在 R 中创建参议院点名投票地图
- nginx - How can we block X-Fordward-For header IP (https request) with IPtables