比较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
上次编辑的列的数据类型是什么?它有什么时间值?