我想做一個查詢的日期,這是我的樣品TSQL:如何查詢其中MS SQL與時間日期=日期沒有時間
select * from Bookings where StartTime = '2/15/2014'
的開始時間是有價值的「2014年2月15日12: 00:00 AM」
當我詢問哪裏沒有時間的結果是0
任何人都可以幫助如何做到這一點開始時間=日期?
感謝
我想做一個查詢的日期,這是我的樣品TSQL:如何查詢其中MS SQL與時間日期=日期沒有時間
select * from Bookings where StartTime = '2/15/2014'
的開始時間是有價值的「2014年2月15日12: 00:00 AM」
當我詢問哪裏沒有時間的結果是0
任何人都可以幫助如何做到這一點開始時間=日期?
感謝
嘗試這樣
SELECT * FROM Bookings WHERE Convert(VARCHAR(10),StartTime,101) = Convert(Varchar(10),'2/15/2014',101)
如果您使用的是SQL Server 2012的
試試這個
SELECT * FROM Bookings WHERE FORMAT(StartTime,'M/dd/yyyy') = FORMAT('2/15/2014','M/dd/yyyy')
仍然沒有結果 – comfreakph
謝謝,這一個工程。但想法是從你再次分享感謝 選擇*從預訂在哪裏格式(StartTime,'M/dd/yyyy')='2/15/2014' – comfreakph
「 2014年2月15日'可以根據您的區域設置進行解釋。嘗試使用獨立於語言環境的ISO日期文字'2014-02-15'。
select * from Bookings where StartTime = '2014-02-15'
或者,如果開始時間包括小時:
select * from Bookings where StartTime >= '2014-02-15' and StartTime < '2014-02'16'
做到這一點,最好的辦法是用一個簡單的比較:
select *
from Bookings
where StartTime >= cast('2014-02-15' as date) and StartTime < cast('2014-02-14' as date);
這是比較安全的方法,因爲它會利用StartTime
上的索引。這個屬性被稱爲「sargability」。
在SQL Server中,強制轉換爲date
也應該是優化搜索,所以你也可以這樣做:
select *
from Bookings
where cast(StartTime as date) = cast('2014-02-15' as date) ;
我相信你也可以這樣做:
select * from Bookings where StartTime::date = '2014-2-15'
是開始時間爲varchar?如果是轉換字符串日期和比較 –
這是一個日期時間 – comfreakph