如何在ms sql中查询日期与时间=没有时间的日期

com*_*kph 7 sql-server

我想用日期查询这是我的样本tsql:

select * from Bookings where StartTime = '2/15/2014'
Run Code Online (Sandbox Code Playgroud)

starttime的值为'2/15/2014 12:00:00 AM'

当我查询StartTime = date时没有时间结果为0

任何人都可以帮忙怎么做?

谢谢

Vig*_*r A 9

试试这样吧

SELECT * FROM  Bookings WHERE Convert(VARCHAR(10),StartTime,101) =  Convert(Varchar(10),'2/15/2014',101)
Run Code Online (Sandbox Code Playgroud)

如果您使用的是SQL SERVER 2012

试试这个

 SELECT * FROM  Bookings WHERE FORMAT(StartTime,'M/dd/yyyy') = FORMAT('2/15/2014','M/dd/yyyy')
Run Code Online (Sandbox Code Playgroud)

SQL格式


Gor*_*off 6

最好的方法是通过简单的比较:

select *
from Bookings
where StartTime >= cast('2014-02-15' as date) and StartTime < cast('2014-02-14' as date);
Run Code Online (Sandbox Code Playgroud)

这是最安全的比较方法,因为它会利用索引StartTime.该属性称为"sargability".

在SQL Server中,转换为a date也应该是sargable,所以你也可以这样做:

select *
from Bookings
where cast(StartTime as date) = cast('2014-02-15' as date) ;
Run Code Online (Sandbox Code Playgroud)