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
下面開始做各種時(shí)間查詢:注意:避免在WHERE條件式中對(duì)字段做運(yùn)算,比如convert(char(10),tdate,120)
select tname from tt Where tdate='2007-06-11' --當(dāng)時(shí)間段值為2007-06-11 00:00:00.000時(shí),此條件式成立
--select tname 時(shí)間值沒有 from tt Where tdate='2007-08-26' --時(shí)間段值為2007-08-26 12:04:50.000,此條件式不成立,時(shí)間值不同,這樣找不到當(dāng)天值
??? select tname 查找當(dāng)天時(shí)間 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() --不行,因?yàn)镾QL會(huì)默認(rèn)當(dāng)天起點(diǎn)是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' --查找當(dāng)天值,可以用,但效率低
--select tname aa from tt Where convert(char(10),tdate,120)='2007-08-26' --查找當(dāng)天值,可以用,但如果條件式后面為‘2007-8-26’則不行.因?yàn)閏har(10)限定十位
--select tname 時(shí)間 from tt Where tdate Like '2007-08-26%' --不可用,找不到記錄
??? --select tname 時(shí)間段 from tt Where tdate between '2007-06-11' and '2007-09-12'
查找時(shí)間段也是一樣的,如:
select tname 查找2007年6月11號(hào)到8月26的記錄 From tt Where tdate >='2007-06-11' and tdate<= '2007-08-26 23:59:59'
?
以上就是SQL SERVER查詢時(shí)間條件式寫法。
轉(zhuǎn)載于:https://www.cnblogs.com/xiaohui1990/p/3418550.html
總結(jié)
以上是生活随笔為你收集整理的SQL SERVER查询时间条件式写法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客假日团队赛8
- 下一篇: Python中的getpass模块