比较SQL Server 2008中的转换日期

比较SQL Server 2008中的转换日期,sql,sql-server-2008,Sql,Sql Server 2008,我在试着比较日期。比较在使用符号时效果很好,但是当我使用=时,它返回零行。查询如下: SET DateFormat DMY SELECT * FROM [Users] where name like '%' + replace('', '%', '[%]') + '%' and email like '%' + replace('', '%', '[%]') + '%' and last_edited = CAST('18/3/2014' AS DATETIME) ORDER BY C

我在试着比较日期。比较在使用
符号时效果很好,但是当我使用
=
时,它返回零行。查询如下:

SET DateFormat DMY 
SELECT * FROM [Users]  
where name like '%' + replace('', '%', '[%]') + '%'
and email like '%' + replace('', '%', '[%]') + '%' 
and last_edited = CAST('18/3/2014' AS DATETIME) 
ORDER BY CONVERT(DateTime, Last_edited,101)  desc

“=”
情况下,此查询有什么问题?`

更改where子句以删除时间部分:

DATEADD(dd, DATEDIFF(dd, 0, [last_edited]), 0) = CAST('18/3/2014' AS DATETIME) 
基于列名,我假设
[上次编辑]
的值如下
2014-03-18 17:50:08.000
,因此如果要与
18/3/2014
进行精确比较,需要删除时间

SET DateFormat DMY 
SELECT * FROM [Users]  
where name like '%' + replace('', '%', '[%]') + '%'
and email like '%' + replace('', '%', '[%]') + '%' 
and convert(varchar(25),last_edited,  101) = '03/18/2014'
ORDER BY CONVERT(DateTime, Last_edited,101)  desc

上次编辑的列的数据类型是什么?它有什么时间值?