【发布时间】:2015-12-14 17:40:29
【问题描述】:
为什么下面的每一个都返回记录:
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 和相等运算符来获得我想要的结果:
SELECT Name, CreatedDate
FROM EmployeeTable
WHERE CAST(CreatedDate as DATE) = '2015-12-14'
有什么方法可以使用相等运算符而不必使用强制转换?
CreatedDate 是DATETIME 类型,包括时间。
【问题讨论】:
-
是 CreatedDate
DATE还是DATETIME? -
@lad2025 是的 -
-
所以答案很简单,你和
2015-12-14T00:00:00比较,没有完全匹配
标签: sql sql-server sql-server-2012 sqldatetime