提问人:Jens Wagemaker 提问时间:9/15/2022 更新时间:9/15/2022 访问量:94
在 SQL-server 中进行比较“date <= datetime”时会发生什么?
What happens when you do a comparison "date <= datetime" in SQL-server?
问:
在 SQL-server 中进行比较“date <= datetime”时会发生什么?
它们都是按日期强制执行的,还是都按日期时间强制执行以进行比较?
答:
2赞
Martin Smith
9/15/2022
#1
datetime
具有更高的优先级,因此将强制转换为 。date
date
datetime
此处记录了这一点。
或者你也可以在下面看到这个
DECLARE @D DATETIME = '2022-09-15 11:59:59';
SELECT CASE WHEN @D = CAST(@D AS DATE) THEN 'Equal' ELSE 'NotEqual' END
(返回“NotEqual”。如果隐式强制转换是迄今为止的,并且删除的时间部分将相等)
评论
0赞
lptr
9/15/2022
如果列是日期,并且它与日期时间值/变量进行比较。然后是与无强制转换(从日期到日期时间,使用日期列索引)的范围。等
1赞
Charlieface
9/15/2022
@lptr 这仅当涉及索引时。常规谓词将只使用正常的隐式强制转换
下一个:比较日期以查看日期是否已过期
评论