定义:
DATEDIFF() 函数返回两个日期之间的时间。
语法:
DATEDIFF(datepart,startdate,enddate)
startdate 和 enddate 参数是合法的日期表达式。
datepart 参数可以是下列的值:
datepart | 缩写 |
---|---|
年 | yy, yyyy |
季度 | qq, q |
月 | mm, m |
年中的日 | dy, y |
日 | dd, d |
周 | wk, ww |
星期 | dw, w |
小时 | hh |
分钟 | mi, n |
秒 | ss, s |
毫秒 | ms |
微妙 | mcs |
纳秒 | ns |
以上参见sqlserver官网:http://www.w3school.com.cn/sql/func_datediff.asp
具体的一些实例:
计算两个时间差
相差年数:SELECT DATEDIFF(YEAR,'2017-07-01 11:25:52','2018-07-02 12:25:52'); 结果:1
相差天数:SELECT DATEDIFF(DAY,'2018-07-01 11:25:52','2018-07-02 12:25:52'); 结果:1
相差小时:SELECT DATEDIFF(HOUR,'2018-07-01 11:00:00','2018-07-01 16:00:00'); 结果:5
相差分数:MINUTE,相差秒数:SECOND,相差月数:MONTH
获取当日、月、年的数据:
根据以上计算时间差,我们可以得出结果,如下:
当日:SELECT * FROM UserTable WHERE DATEDIFF(DAY, StartTime, GETDATE())=0
当月:SELECT * FROM UserTable WHERE DATEDIFF(MONTH, StartTime, GETDATE())=0
当年:SELECT * FROM UserTable WHERE DATEDIFF(YEAR, StartTime, GETDATE())=0
如果想要获取前一天、月或年等,函数只需等于1即可,依次类推即可,反之获取后一个月、年等。函数等于-1,在此就不一一列出了。