我想在SQL Server中的日期时间字段上强加日期条件。
datetime
字段与此2011-01-19 17:57:18.350
类似,当我执行以下查询时,它不会产生任何结果。
select top 1000 *
from [dbo].[RouteState]
where convert (date, logtime, 101) = '12-01-2015'
有人可以帮我解决这里出了什么问题吗?
答案 0 :(得分:0)
无需将datetime
列转换为任何内容。请改为使用闭合打开时间间隔,并将字符串文字的格式更改为yyyymmmdd
,以确保SQL Server将以相同的方式解释日期值,而不管区域和日期格式设置如何。
select top 1000 *
from [dbo].[RouteState]
where logtime >= '20150112' and
logtime < '20150113';
有关到目前为止投射列的详细信息,请查看Cast to date is sargable but is it a good idea?