<b>教您SQL SERVER查询时间条件式写法</b>[MSSQL防范]
本文“<b>教您SQL SERVER查询时间条件式写法</b>[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
查询时SQL SERVER数据库的核心,下面就将教您SQL SERVER查询时间条件式写法,供您参考,但愿对您更好学习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查询时间条件式写法.
<以上是“<b>教您SQL SERVER查询时间条件式写法</b>[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |