在SQL Server中,在当天的基础上加上1个月时间,这是用哪个函数?

比如今天是3月1号,加上一个月之后变成4月1号

DATEADD() 函数是在日期中添加或减去指定的时间间隔。

现在,我们希望向 "OrderDate" 添加 2 天,可以使用:

SELECT OrderId,DATEADD(day,2,OrderDate) AS OrderPayDate FROM Orders

看到了嘛!!由12月29号变成12月31号,增加了2天。

针对你这个问题就可以使用:

select dateadd(month,1,getdate()) from 表名,这样就可以在当天的基础上加1个月的时间了!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-07

SELECT '现在' AS [日期], GETDATE() AS [数据]
UNION ALL
SELECT '下一秒' AS [日期], DATEADD(ss, 1, GETDATE() ) AS [数据]
UNION ALL
SELECT '下一分' AS [日期], DATEADD(mi, 1, GETDATE() ) AS [数据]
UNION ALL
SELECT '下一小时' AS [日期], DATEADD(hh, 1, GETDATE() ) AS [数据]
UNION ALL
SELECT '明天' AS [日期], DATEADD(dd, 1, GETDATE() ) AS [数据]
UNION ALL
SELECT '下周' AS [日期], DATEADD(ww, 1, GETDATE() ) AS [数据]
UNION ALL
SELECT '下月' AS [日期], DATEADD(mm, 1, GETDATE() ) AS [数据]
UNION ALL
SELECT '下季度' AS [日期], DATEADD(qq, 1, GETDATE() ) AS [数据]
UNION ALL
SELECT '明年' AS [日期], DATEADD(yy, 1, GETDATE() ) AS [数据]
go
日期       数据
-------- -----------------------
现在       2010-08-31 17:20:57.950
下一秒      2010-08-31 17:20:58.950
下一分      2010-08-31 17:21:57.950
下一小时     2010-08-31 18:20:57.950
明天       2010-09-01 17:20:57.950
下周       2010-09-07 17:20:57.950
下月       2010-09-30 17:20:57.950
下季度      2010-11-30 17:20:57.950
明年       2011-08-31 17:20:57.950

(9 行受影响)


SELECT '下月' AS [日期], DATEADD(mm, 1, GETDATE() ) AS [数据]

第2个回答  2014-03-07
dateadd(datepart, number, date) , datapart指定对那一部分加,number知道加多少,date指定在谁的基础上加。getdate()表示当前时间。
第3个回答  2014-03-07
declare @paraDate datetime
set @paraDate='2014.3.1'

declare @resultDate datetime--这个就是你要的值,dateadd就是你要的函数

set @resultDate=dateadd(month,1,@paraDate)
第4个回答  2014-03-07
select dateadd(month,1,getdate())追问

能解说一下么?

追答

getdate()就是当前时间
你也可以写成 dateadd(month,1,‘2014-3-7’) ,对这个值进行select,结果就是2014-4-7

相似回答