SQLServer根据时间段查询数据

今天一同事发现一个SQLServer语句执行特别慢,检查后发现是 条件 加上了 时间段 ,之前使用的是  时间字段 between xxx and xxx这样的方式,遂更改时间判断方法,

----------dafediff----------返回两个时间点的差,可选单位 yy,mm,dd,hh,ss等

查询今年的数据  :

select * from datediff(yy,时间字段,getdate())=0

查询2016年的数据:

select * from datediff(yy,时间字段,'2016')=0

----------dafepart----------截取一个时间点的某单位,列如截取年或者月或者天,可选单位 yy,mm,dd,hh,ss等

查询某段时间的数据,例如 2016年2月到2016年12月:

select * from datediff(yy,时间字段,'2016')=0 and datepart(mm,时间字段)>=2 and datepart(mm,时间字段)<=12

原文地址:https://www.cnblogs.com/whalefallblog/p/6604154.html