У меня есть переменная DateTime в SQL Server. У меня есть приведенный ниже код, чтобы проверить выходные, а затем вычесть дни, чтобы сделать это в пятницу. Теперь я также хочу установить время этого нового Datetime как 17:00 в пятницу. Может кто-нибудь, пожалуйста, скажите мне, как я могу этого добиться.
if (DATENAME(DW, @EndDate) = 'Sunday')
Begin
Set @EndDate = (SELECT DATEADD(DAY, -2, @EndDate))
End
if (DATENAME(DW, @EndDate) = 'Saturday')
Begin
Set @EndDate = (SELECT DATEADD(DAY, -1, @EndDate))
End
End
Спасибо


Вы можете добавить 17 часов:
Set @EndDate = DATEADD(HOUR, 17, DATEADD(DAY, -1, @EndDate))
Я понятия не имею, почему вы сформулировали эту логику с помощью подзапроса. Это не обязательно.
Если в ваших данных уже есть компонент времени, сначала приведите его к date, чтобы избавиться от компонента времени, а затем вернитесь к datetime:
Set @EndDate = DATEADD(HOUR, 17, DATEADD(DAY, -1, CONVERT(datetime, CONVERT(DATE, @EndDate))))
Потрясающе .. Спасибо
выберите приведение (CONVERT (varchar (12), GETDATE ()) + '17:00' в качестве даты и времени)
Спасибо, Гордон. У меня есть дата в формате даты и времени. Выбор DATEADD(HOUR, 17, DATEADD(DAY, -1, '17/03/2019 12:08:08')) приводит к 2019-03-17 05 :08:08.000 Я искал 15.03.2019 17:00:00