mssql_DateDiff和DATEADD函数实现日期计划加减
招聘网络营销-时尚网名
DateDiff和DATEADD函数实现日期计划加减
在我们还不知道sql中有
DateDiff()函数之前我们要计算日期时间差值我会直接把
它放到像php,asp,程序中进
行计算了,现在我来分享利用DateDiff函数实
现日期计划加减。
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, ''19870502'',
''19951115'' )
复制代码
下面的语句返回 0:
代码如下
select datediff( day, ''00:00'', ''23:59'' )
复制代码
下面的语句返回 4:
代码如下
select
datediff( day, ''19990719 00:00'',''19990723
23:59'' )
复制代码
下面的语句返回 0:
代码如下
select datediff( month, ''19990719'',
''19990723'' )
复制代码
面的语句返回 1:
代码如下
select datediff( month, ''19990719'',
''19990823'' )
复制代码
SQL
Server DATEADD() 函数
SQL Server Date 函数
定义和用法
DATEADD() 函数在日期中添加或减去指定的时间间隔。
语法
DATEADD(datepart,number,date)
date 参数是合法的日期表达式。number
是您希望添加的间隔数;对于未来的时间,此数是正数,对于
过去的时间,此数是负数。
datepart 参数可以是下列的值:
datepart
年
缩写
yy, yyyy
季度
qq, q
月
mm, m
年中的日
dy, y
日
dd, d
周
wk,
ww
星期
dw, w
小时
hh
分钟
mi, n
秒
ss, s
毫秒
ms
微妙
mcs
纳秒
ns
实例
假设我们有下面这个 表:
OrderId
1
ProductName
'Computer'
OrderDate
2008-12-29
16:25:46.635
现在,我们希望向 添加 2 天,这样就可以找到付款日期。
我们使用如下 SELECT 语句:
SELECT
OrderId,DATEADD(day,2,OrderDate) AS OrderPayDate
FROM Orders
结果:
OrderId
1
OrderPayDate
2008-12-31 16:25:46.635