gpt4 book ai didi

sql - 查询时的日期未在 SQL Server 中返回正确的输出

转载 作者:行者123 更新时间:2023-12-01 12:29:14 25 4
gpt4 key购买 nike

我这样跑的时候有个疑问

select emp_name, dt_of_join 
from emp_mst
where dt_of_join = '2015-09-14'

我从表中得到一条记录。

但是当我尝试像下面这样动态运行时

SELECT emp_name, Dt_Of_Join 
FROM emp_mst
WHERE Dt_Of_Join = DATEADD(month, -6, GETDATE())

它不返回任何记录。为什么???

我正在使用 SQL Server 2008。

最佳答案

因为 getdate() 返回一个带小时的时间值,这使得时间不相等。使用 CAST AS DATE 像这样截断日期:

SELECT emp_name, Dt_Of_Join 
FROM emp_mst
WHERE Dt_Of_Join = cast(DATEADD(month, -6, GETDATE()) AS DATE)

编辑 DATE 是在 SQL Server 2008 中引入的,如果您使用的是旧版本,请尝试以下操作:

SELECT emp_name, Dt_Of_Join 
FROM emp_mst
WHERE Dt_Of_Join = CAST(FLOOR(CAST(DATEADD(month, -6, GETDATE()) AS FLOAT)) AS DATETIME)

如@zoharpeled 的评论中所述,您可以阅读有关从日期 here. 截断时间值的方法。

关于sql - 查询时的日期未在 SQL Server 中返回正确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35987854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com