Sql 时间做条件

在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) 
时间: 2024-08-01 22:43:11

Sql 时间做条件的相关文章

夜黑风高的夜晚用SQL语句做了一些想做的事&#183;&#183;&#183;&#183;&#183;&#183;&#183;

     IT这条漫漫长路注定是孤独的,陪伴我们的只有那些不知冷暖的代码语句和被手指敲打的磨掉了键上的标识的键盘. 之所以可以继续坚持下去,是因为心中有一份永不熄灭的激情. 成功的路上让我们为自己带盐~~~~     想知道SQL语句的强大功能就先让我给你讲讲什么是SQL吧 SQL简介:        SQL能做什么?            专业人士说:在进行数据管理时,如果每次创建数据库,表或者从数据库中读取数据,都需要手动在SQL Server Management  Studio  中进行

王小川清华大学毕业典礼演讲:我也有过学渣经历(和时间做朋友,要和华军、天空这些下载站做合作推广)

文讯网据新浪科技讯 7月4日上午消息,搜狗CEO王小川近日应邀在清华大学2016年毕业典礼上发表演讲,他在题为<和时间做朋友>的演讲中,讲诉了从清华毕业加入搜狐,并开始从无到有研发搜狗搜索的过程,希望通过创立搜狗的经历,向其学弟学妹讲诉从毕业到创业最大的感悟. 公开资料显示,王小川是清华大学1996级计算机系学生,并于2008年再度返校取得了清华大学经管学院EMBA学位. 王小川以自己为例作为开通,虽然大家都说他经历上很漂亮.但他说:“我也有不顺的时候,经历过很多的困难和挫折.先来说学渣的经历

SQL 2008根据条件拆分列

在为人事局做报表过程中,遇到一个棘手的问题,客户要求把数据库中的一列数据根据条件分成多列. 比如:数据库中有省份这么一列数据 客户要求根据省份分类,河北省一列.北京市一列.天津市一列,剩下的为其他,目标效果如下: 手工编写的SQL语句Version1.0版: select 河北 = PARSENAME(provice,(charindex('河北',provice))) , 北京 = PARSENAME(provice,(charindex('北京',provice))) , 天津 = PARS

sql时间函数

sql 时间函数,需要的朋友可以参考下. 1. 当前系统日期.时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 例如:向日期加上2天 select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000 例如:查询目前时间最近三天的内容降序排列 select * from table where time between dateadd(day,-3,getda

将string数组转化为sql的in条件

例如:我想将String[] str = {"4","5","6"}转化为"'4','5','6'"字符串.这样我就可以用sql查询:select * from tableName id in (字符串)了. 项目中实现的源码如下: StringBuffer idsStr = new StringBuffer(); for (int i = 0; i < ids.length; i++) { if (i > 0)

sql时间比较

sql时间比较,布布扣,bubuko.com

DocCms存储型XSS+后台任意文件下载上传+目录删除+sql执行(有条件可getshell)

下载链接 https://share.weiyun.com/46ebceb4fe91da144ad2661522a941e1 留言处存储型XSS 漏洞在content/guestbook/index.php function create() { echo 123; global $db,$request; if ($_SESSION['verifycode'] != $request['checkcode']) { echo '<script>alert("请正确填写验证码!&qu

sql语句查询条件的不同表达方式对查询性能的影响

今天操作数据库遇到一个问题 目标表RA_AD_DAILY_DATA的数据量大概有5千万左右,其中的BUSINESS_DATE字段为日期类型 我要查询8月20号导入的三条记录,刚开始用这种方式去查: SELECT * FROM RA_AD_DAILY_DATA WHERE  to_char(BUSINESS_DATE,'yyyy-MM-dd')= '2014-08-20' ; 速度非常慢,五分钟左右才能出来结果(在PL/SQL developer中) 同样都是查询2014年8月20日的数据,换一种

常用SQL时间格式SQLServer中文版的默认的日期字段datetime格式是yyyy-mm-d

常用SQL时间格式 SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm 例如: select getdate() 2004-09-12 11:06:08.177 这对于在要不同数据库间转移数据或者习惯oracle日期格式YYYY-MM-DD HH24:MI:SS的人多少有些不方便. 我整理了一下SQL Server里面可能经常会用到的日期格式转换方法: 举例如下: select CONVERT(varchar, getdate(),