sql - SQL,GETDATE 在 where 子句中
问题描述
我正在尝试将我的查询用作我的 SQL 查询的当天。
我在下面尝试返回 0 条记录:
select *
from [TEST].[dbo].LIMIT
where endOfDay = GETDATE()
select *
from [TEST].[dbo].LIMIT
where endOfDay = dateadd(dd, datediff(dd, 0, getdate()), 0)
where endOfDay >= getdate() and endOfDay < getdate() + 1
一个示例日期是2019-07-09 00:00:00.0
另外,如果今天的日期没有给定日期,我可以得到一个日期范围吗?
任何帮助将不胜感激,谢谢。
解决方案
首先,您需要省略引号,否则 'GETDATE()' 只是一个字符串。
其次,要按“天”匹配,您需要从 的结果中去除时间部分GETDATE()
,您可以CAST(GETDATE() as DATE)
改为使用:
select *
from [TEST].[dbo].LIMIT
where endOfDay = CAST(GETDATE() as DATE)
为了使其发挥最佳效果,该endOfDay
列还需要为DATE
. 如果是别的东西,你还需要 CAST 或 CONVERTendOfDay
到DATE
.
推荐阅读
- sharepoint - SharePoint 2013 全局导航更新
- react-native - undefined 不是评估 console.tron.createSagaMonitor 的对象
- python-3.x - 字符串不更改为大写
- java - 获取 Firebase 数据库数据在内部返回空 for (String key : objectMap.keySet()) {}
- countif - 组合 SUMIFS 和 COUNTIFS 可能吗?
- c - 为什么getsockopt optlen 为零?
- c# - 实体框架 - 代码优先 - 外键约束
- javascript - 如何使用 javascript 遍历 html?
- ios - 使用 URLSession 时出现 401 授权错误
- windows - 如何删除大量防火墙规则(Windows server 2019)?