为什么以下每个都返回记录:
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
,包括时间.
可能CreatedDate
包含时间部分(例如,类型datetime
).这就是=
开箱即用的原因.当你把它投射到date
时间部分被删除,然后=
比较工作正常.