У меня есть оператор SQL, который сравнивает только время в столбце Datetime
. Если критерии выполнены, мне нужен столбец, чтобы обновить и связать значение времени с соответствующей датой в этой строке.Объединить значение времени для соответствия строке Дата SQL Server
Вот SQL заявление,
declare @first datetime
set @first = '2016/10/10 06:47:16.123'
declare @second datetime
set @second = '2016/10/10 10:47:16.123'
declare @myTime datetime
set @myTime = '2016/10/10 00:15:16.123'
UPDATE Staff_Manager.dbo.Staff_Time_TBL
SET Time_Data_1 = CASE
WHEN CAST(Time_Data_1 AS time)
BETWEEN CAST(@first AS time) AND CAST(@second AS time)
THEN CAST(Date_Data AS date) + CAST(@myTime AS time)
ELSE NULL
END
WHERE Staff_No = 1903 AND Date_Data BETWEEN '2016/2/1' AND '2016/3/1'
После того, как критерии встретились мне нужна эта строка ниже, чтобы получить дату из этой строки из столбца с именем Date_Data
(тип данных DATE
) и сцепить его с только значение времени в столбец с именем (тип данных DATETIME
)
THEN CAST(Date_Data AS date) + CAST(@myTime AS time)
в настоящее время я получаю сообщение об ошибке,
Дата добавления даты недействительна для оператора добавления.
Я считаю, что это можно было сделать до 2008 года, но я на SQL-сервере 2014, как вы собираетесь делать что-то подобное.
вам нужно еще один бросок, чтобы добавить время произнесения (CAST (Date_Data как дата), как DateTime) + бросание (CAST (@myTime AS время) как DateTime) – nazark
@nazark, спасибо, что зафиксировал его. Работаю сейчас. – KyloRen
@nazark, да, я буду голосовать и отмечать как ответ. Спасибо за помощь. – KyloRen