2016-12-07 3 views
0

Как объединить значение datetime из двух дат. Первое значение содержит соответствующую дату, а второе значение содержит соответствующее время (но также имеет дату, которую я хочу пропустить).Объединение даты и времени с двух дней - SQL Server 2012

DECLARE @date DATETIME = '2016-12-08 00:00:00.000' 
DECLARE @time DATETIME = '2016-12-07 12:15:00.000' 

SELECT @date + @time возвращается: 2133-11-14 12:15:00.000 , но я хочу: 2016-12-08 12:15:00.000

+1

Возможный дубликат [Как совместить даты из одного поля со временем из другого поле - MS SQL Server] (http://stackoverflow.com/questions/700619/how-to-combine-date-from-one-field-with-time-from-another-field-ms-sql-server) – AHiggins

+0

Ответ LukeH на re должно быть то, что вам нужно. – AHiggins

ответ

1

Используйте стиль часть в Convert функция для извлечения date и time в varchar (без некоторого явного преобразования в varchar) типа и CONCAT с результатами для получения результата дата

  • 112 для извлечения даты
  • 114 для извлечения Время

Попробуйте

DECLARE @date DATETIME = '2016-12-08 00:00:00.000' 
DECLARE @time DATETIME = '2016-12-07 12:15:00.000' 

SELECT CONVERT(DATETIME, CONVERT(VARCHAR(50), @date, 112) + ' ' 
         + CONVERT(VARCHAR(50), @time, 114)) 

Результат:2016-12-08 12:15:00.000

+0

Отлично работает, спасибо! – PawelD

Смежные вопросы