【发布时间】:2014-08-31 10:04:50
【问题描述】:
如何在 DATEADD() 中为 MONTH 日期部分进行计算
添加月份
SELECT '2012-01-29' AS [Date], CAST(DATEADD(MONTH, 1, '2012-01-31') AS DATE) AS NextDate
UNION
SELECT '2012-01-31' AS [Date], CAST(DATEADD(MONTH, 1, '2012-01-31') AS DATE) AS NextDate
UNION
SELECT '2013-01-31' AS [Date], CAST(DATEADD(MONTH, 1, '2013-01-31') AS DATE) AS NextDate
结果
减去月份
SELECT '2012-02-29' AS [Date], CAST(DATEADD(MONTH, -1, '2012-02-29') AS DATE) AS PrevDate
UNION
SELECT '2012-03-01' AS [Date], CAST(DATEADD(MONTH, -1, '2012-03-01') AS DATE) AS PrevDate
结果
当我为日期 29,30,31 of Jan'2012 添加月份时,我得到与 February 29 相同的结果。对于减法,对于日期29 Feb'2012,它显示29 Jan'2012。无法获取日期30 & 31 of Jan'2012。
我想知道一些简短的解释。
【问题讨论】:
标签: sql sql-server date dateadd