教您SQL SERVER查詢時間條件式寫法
查詢時SQL SERVER數(shù)據(jù)庫的核心,下面就將教您SQL SERVER查詢時間條件式寫法,供您參考,希望對您更好學(xué)習(xí)SQL SERVER查詢能夠有所幫助。
如下表:
tid tname tdate
1 張三 2009-10-29 19:04:50
2 李四 2006-11-12 11:04:50
3 王五 2007-6-11
4 陳六 2007-8-26 12:04:50
5 小二 2009-11-28
下面開始做各種時間查詢:注意:避免在WHERE條件式中對字段做運算,比如convert(char(10),tdate,120)
select tname from tt Where tdate='2007-06-11' --當時間段值為2007-06-11 00:00:00.000時,此條件式成立
--select tname 時間值沒有 from tt Where tdate='2007-08-26' --時間段值為2007-08-26 12:04:50.000,此條件式不成立,時間值不同,這樣找不到當天值
select tname 查找當天時間 from tt Where tdate between '2007-08-26 00:00:00' and '2007-08-26 23:59:59'
--select tname 今天的值 from tt Where tdate =getdate() --不行,因為SQL會默認當天起點是00:00:00開始,
select tname 今天的值方式一 from tt Where tdate between convert(char(10),getdate(),120) and convert(char(10),getdate(),120)+' 23:59:59'
select tname 今天的值方式二 from tt Where tdate >= convert(char(10),getdate(),120) and tdate<convert(char(10),getdate()+1,120)
--select tname from tt Where left(tdate,10)='2007-06-11' --
--select tname from tt Where convert(char(10),tdate,120)='2007-06-11' --查找當天值,可以用,但效率低
--select tname aa from tt Where convert(char(10),tdate,120)='2007-08-26' --查找當天值,可以用,但如果條件式后面為‘2007-8-26’則不行.因為char(10)限定十位
--select tname 時間 from tt Where tdate Like '2007-08-26%' --不可用,找不到記錄
--select tname 時間段 from tt Where tdate between '2007-06-11' and '2007-09-12'
查找時間段也是一樣的,如:
select tname 查找2007年6月11號到8月26的記錄 From tt Where tdate >='2007-06-11' and tdate<= '2007-08-26 23:59:59'
以上就是SQL SERVER查詢時間條件式寫法。
【編輯推薦】