t_p*_*lus 1 sql sql-server sqldatetime sql-server-2012
为什么以下每个都返回记录:
SELECT Name, CreatedDate
FROM EmployeeTable
WHERE CreatedDate < '20151214'
SELECT Name, CreatedDate
FROM EmployeeTable
WHERE CreatedDate > '20151214'
Run Code Online (Sandbox Code Playgroud)
虽然以下查询没有?
SELECT Name, CreatedDate
FROM EmployeeTable
WHERE CreatedDate = '20151214'
Run Code Online (Sandbox Code Playgroud)
我必须使用CAST带有相等运算符的a来获得我想要的结果:
SELECT Name, CreatedDate
FROM EmployeeTable
WHERE CAST(CreatedDate as DATE) = '2015-12-14'
Run Code Online (Sandbox Code Playgroud)
有没有办法使用相等运算符而不必使用强制转换?
CreatedDate是类型DATETIME,包括时间.
可能CreatedDate包含时间部分(例如,类型datetime).这就是=开箱即用的原因.当你把它投射到date时间部分被删除,然后=比较工作正常.