#sql #sql-server-2008
#sql #sql-server-2008
Вопрос:
У меня есть переменная DateTime в SQL Server..У меня есть приведенный ниже код для проверки выходных, а затем вычитания дней, чтобы сделать это пятницей. Теперь я также хочу установить время этого нового Datetime как 5 часов вечера в пятницу. Может кто-нибудь, пожалуйста, сказать мне, как я могу этого добиться.
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
Спасибо
Ответ №1:
Вы можете добавить 17 часов:
Set @EndDate = DATEADD(HOUR, 17, DATEADD(DAY, -1, @EndDate))
Я понятия не имею, почему вы сформулировали эту логику с использованием подзапроса. В этом нет необходимости.
Если в ваших данных уже есть компонент time, сначала выполните приведение к date
, чтобы избавиться от компонента time, а затем обратно к datetime
:
Set @EndDate = DATEADD(HOUR, 17, DATEADD(DAY, -1, CONVERT(datetime, CONVERT(DATE, @EndDate))))
Комментарии:
1. Спасибо, Гордон.. У меня есть дата в формате datetime ..выбираем DATEADD (ЧАС, 17, DATEADD (ДЕНЬ, -1, ’03/17/2019 12:08:08′)) ведет к 2019-03-17 05:08:08.000 Я искал 15.03.2019 17:00:00
2. Потрясающе.. Спасибо
Ответ №2:
выберите приведение (ПРЕОБРАЗОВАТЬ(varchar(12),GETDATE()) ’17:00′ в качестве datetime)