DATEADD Расчет
Как происходит расчет дляМЕСЯЦ datepart в DATEADD ()
Добавить месяц
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
.
Я хочу знать краткое объяснение.