SQL Server 2019 — добавление дня в дату с помощью компонента time

#sql #sql-server #string #date #sql-server-2019

#sql #sql-сервер #строка #Дата #sql-server-2019

Вопрос:

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

 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) , но это не показывает компонент времени.

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

Ответ №1:

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

 dateadd(day, 1, '2020-09-10 18:30:00.000')
  

Ответ №2:

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

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

Вывод:

 2020-09-11 18:30:00.000
  

Комментарии:

1. . . Преобразование в datetime , вероятно, не требуется.