在我们还不知道sql中有DateDiff()函数之前我们要计算日期时间差值我会直接把它放到像php,asp,asp.net程序中进行计算了,现在我来分享利用DateDiff函数实现日期计划加减。
语法
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
DateDiff 函数语法中有下列命名参数:
此函数计算两个指定日期之间日期部分的数目。结果为日期部分中等于(date2 - date1)的有符号的整数值。
当结果不是日期部分的偶数倍时,DATEDIFF 将被截断而不是被舍入。
当使用 day 作为日期部分时,DATEDIFF 返回两个指定的时间之间(包括第二个日期但不包括第一个日期)的午夜数。
当使用 month 作为日期部分时,DATEDIFF 返回两个日期之间(包括第二个日期但不包括第一个日期)出现的月的第一天的数目。
当使用 week 作为日期部分时,DATEDIFF 返回两个日期(包括第二个日期但不包括第一个日期)之间星期日的数目。
巧用datediff获得时间戳
代码如下 | 复制代码 |
1> SELECT datediff(ss,'1970-01-01',GETDATE()) as time |
datediff取差函数
ss 表示以秒为单位
1970-01-01 时间戳都从这个日期计算起
getdate() 当前时间
既读取当前时间与1970-01-01之间的秒数就是当前时间戳
当然,如果你也可以通过getdate()读取当前日期以后也可以使用其它语言转换成时间戳也可以,比如js,php。
当然,datediff函数很强大,比如要算出两个日期之间的月数
代码如下 | 复制代码 |
1> SELECT datediff(mm,'2012-01-01',GETDATE()) as time |
下面的语句返回 1:
代码如下 | 复制代码 |
select datediff( hour, ''4:00am'', ''5:50am'' ) |
下面的语句返回 102:
代码如下 | 复制代码 |
select datediff( month, ''1987/05/02'', ''1995/11/15'' ) |
下面的语句返回 0:
代码如下 | 复制代码 |
select datediff( day, ''00:00'', ''23:59'' ) |
下面的语句返回 4:
代码如下 | 复制代码 |
select datediff( day, ''1999/07/19 00:00'',''1999/07/23 23:59'' ) |
下面的语句返回 0:
代码如下 | 复制代码 |
select datediff( month, ''1999/07/19'', ''1999/07/23'' ) |
面的语句返回 1:
代码如下 | 复制代码 |
select datediff( month, ''1999/07/19'', ''1999/08/23'' ) |