Я пытаюсь использовать функцию DATEADD, чтобы добавить четверть к дате. Моя среда - MS Mgmt Studio (v17.7) и SQL Server Express (14.0.1000). Базируется в Великобритании.
Код, который я использую, очень прост, как показано ниже, меня просто смущают возвращаемые значения:
SELECT DATEADD(q,1,'1997-09-30')
Я бы ожидал возвращаемое значение «1997-12-30: 00: 00.000», но вместо этого я получаю «1997-12-30 00: 00: 00.000», т.е. 30 числа месяца, а не 31 числа.
Я попытался выполнить поиск переполнения стека, но не нашел подобных проблем. До сих пор я пытался изменить параметры и тип даты, например:
SELECT DATEADD(q,2,'1997-09-30')
- возвращается 1998-03-30 00: 00: 00.000 (я бы ожидал 1998-03-31 00: 00: 00.000)
SELECT DATEADD(qq,1,'1997-09-30')
/ SELECT DATEADD(quarter,1,'1997-09-30')
- тот же результат
Я также пытался использовать параметр
declare @date datetime (also tried datetime2, smalldate, date)
set @date = ('1997-09-30')
SELECT DATEADD(q,1,@date)
Может кто-нибудь дать мне указатель на то, где я иду не так? Я что-то упустил с функцией DATEADD или есть какая-то переменная окружения, где мне нужно изменить? Спасибо!