码迷,mamicode.com
首页 > 数据库 > 详细

Sql 时间做条件

时间:2017-09-10 12:34:55      阅读:310      评论:0      收藏:0      [点我收藏+]

标签:带来   day   time   bsp   pre   cas   条件   数据   字段   

在sql的查询中我们应该尽量避免在WHERE条件中的字段上用函数,如DATEDIFF,DATEADD,CONVERT

因为这样做会使该字段上的索引失效,影响SQL语句的性能。即使该字段上没有索引,也会给sql带来压力。

在以时间做条件查询的时候,比如要查询1天前的数据多数人会这么写

--前一天数据
SELECT * FROM TableA WHERE DATEDIFF(DAY,dtTime,GETDATE()) < 1
--当前时间到昨天的数据
SELECT * FROM TableA WHERE DATEDIFF(DAY,dtTime,GETDATE()) <= 1

 

我们应该采用以下的写法:

--前一天数据
SELECT * FROM TableA WHERE dtTime > CAST(GETDATE()-1 AS date) AND dtTime< CAST(GETDATE() AS date)
--当前时间到昨天的数据
SELECT * FROM TableA WHERE dtTime > CAST(GETDATE()-1 AS date) 

 

Sql 时间做条件

标签:带来   day   time   bsp   pre   cas   条件   数据   字段   

原文地址:http://www.cnblogs.com/ghelement/p/7500444.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!