当前位置:  开发笔记 > 编程语言 > 正文

TSQL中的日期比较

如何解决《TSQL中的日期比较》经验,为你挑选了1个好方法。

为什么以下每个都返回记录:

SELECT Name, CreatedDate 
FROM EmployeeTable 
WHERE CreatedDate < '20151214'

SELECT Name, CreatedDate 
FROM EmployeeTable 
WHERE CreatedDate > '20151214'

虽然以下查询没有?

SELECT Name, CreatedDate 
FROM EmployeeTable 
WHERE CreatedDate = '20151214'

我必须使用CAST带有相等运算符的a来获得我想要的结果:

SELECT Name, CreatedDate 
FROM EmployeeTable 
WHERE CAST(CreatedDate as DATE) = '2015-12-14'

有没有办法使用相等运算符而不必使用强制转换?

CreatedDate是类型DATETIME,包括时间.



1> peter.petrov..:

可能CreatedDate包含时间部分(例如,类型datetime).这就是=开箱即用的原因.当你把它投射到date时间部分被删除,然后=比较工作正常.


那么,时间部分不会搞乱`<`或`>`比较.想一想,这很正常.例如'20140101 3 PM'仍然大于'20140101',但它不等于它.
推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有