当前位置:数据库 > SQLServer >>

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
2> go
time
1361988498
(1 row affected)
1>

datediff取差函数

ss 表示以秒为单位

1970-01-01 时间戳都从这个日期计算起

getdate() 当前时间

既读取当前时间与1970-01-01之间的秒数就是当前时间戳

当然,如果你也可以通过getdate()读取当前日期以后也可以使用其它语言转换成时间戳也可以,比如js,php。

当然,datediff函数很强大,比如要算出两个日期之间的月数

 代码如下 复制代码

1> SELECT datediff(mm,'2012-01-01',GETDATE()) as time      
2> go time13 (1 row affected)

下面的语句返回 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'' )

补充:数据库,Mssql 
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,