选择日期时间字段的日期条件

时间:2015-01-12 23:58:46

标签: sql-server date datetime

我想在SQL Server中的日期时间字段上强加日期条件。

datetime字段与此2011-01-19 17:57:18.350类似,当我执行以下查询时,它不会产生任何结果。

select top 1000 * 
from [dbo].[RouteState] 
where convert (date, logtime, 101) = '12-01-2015'

有人可以帮我解决这里出了什么问题吗?

1 个答案:

答案 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?