xiaohui1990

 

如下表:

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查询时间条件式写法。

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-06-21
  • 2022-12-23
  • 2021-12-03
  • 2021-12-03
  • 2021-12-12
  • 2022-12-23
猜你喜欢
  • 2021-12-28
  • 2021-12-18
  • 2021-12-18
  • 2021-11-22
  • 2022-12-23
  • 2021-12-13
  • 2022-12-23
相关资源
相似解决方案