2015-08-25 2 views
0

У меня есть два поля, которые как тип Datetime:T-SQL 2005: Добавить дату и время

Date = '2011-1-01 00:00:00.000' 
Time = '1900-01-01 3:31:19.000' 

«1900-01-01» является значением по умолчанию, так что я заинтересован только в части времени (3: 31: 19,000).

Все, что я хочу, это комбинировать дату и время вместе. Таким образом, для этого примера я хочу запрос, который дал бы мне результат:

Combined = '2011-1-01 3:31:19.000' 

Я использую T-SQL 2005.

+0

ли времена всегда тот же 1900? – StingyJack

+0

У вас есть первичный ключ? Как бы вы объединили даты? – Mihai

+0

Да, значение времени всегда будет 1900-01-01 –

ответ

1

Если вы хотите струнный-менее вариант, вы можете сложить DATEADD операторы/DATEPART вместе ...

DECLARE @Date DATETIME = '2011-1-01 00:00:00.000' 
, @Time DATETIME = '1900-01-01 3:31:19.000' 

SELECT DATEADD(hh, DATEPART(hh, @Time), DATEADD(mi, DATEPART(mi, @Time), @Date)) --and so on 

Результаты в 2011-01-01 03:31:00.000

0

Что-то вроде этого

  • Convert (дата ,. ..) --strips Время
  • Преобразовать (VARCHAR(), .., 108) --strips Дата

Запрос

select Convert(date,'2011-1-01 00:00:00.000') 
      +' '+ convert(varchar(20),'1900-01-01 3:31:19.000',108) 
+0

Я использую версию 2005 года, так что это не сработает для меня (получение этой ошибки: введите дату не определенный тип системы). –

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