今天一同事发现一个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