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