SQL Server 2019 - добавить день в дату с компонентом времени

Я хочу добавить 1 день к дате с компонентом времени. Моя дата, например, для.

2020-09-10 18:30:00.000' 

и я хочу добавить 24 часа, т.е. ожидаемый результат

2020-09-11 18:30:00.000

Я написал SELECT DATEADD(day, DATEDIFF(day, 0, '2020-09-10 18:30:00.000'), 1), но это не показывает компонент времени.

Как добавить дату с компонентом времени?


person Happy Singh    schedule 05.09.2020    source источник


Ответы (2)


Отбросьте datediff() в своей попытке. Согласно документации, дата является третьим аргументом функции dateadd().

select dateadd(day, 1, convert(datetime, '2020-09-10 18:30:00.000') );

Выход:

2020-09-11 18:30:00.000
person Sander    schedule 05.09.2020
comment
. . Преобразование в datetime, вероятно, не нужно. - person Gordon Linoff; 05.09.2020

SQL Server действительно гибок в распознавании форматов даты и с радостью воспримет вашу строку как дату, если вы поместите ее в функцию даты. Таким образом, нет необходимости в явном преобразовании из строки в дату, вы можете просто сделать:

dateadd(day, 1, '2020-09-10 18:30:00.000')
person GMB    schedule 05.09.2020