Преобразовать varchar в дату и время и добавить секунды

У меня есть два столбца startDate (160812 - год, месяц, день) и startTime (112345 - час, минуты, секунды) с типом данных varchar, моя цель - объединить их и преобразовать в datetime. И я должен добавить к ним другой столбец (duration - int)

Я пробовал что-то вроде этого:

WITH [A] AS 
(
    SELECT (startDate + startTime) AS time1
    FROM [Date] 
 )
SELECT 
    CONVERT(datetime, A.time1, 20)
FROM 
    [A]  

однако я получаю сообщение об ошибке:

Сообщение 241, уровень 16, состояние 1, строка 1
Ошибка преобразования при преобразовании даты и/или времени из строки символов.

Любые лучшие идеи, чтобы попробовать?


person Kalkov    schedule 06.01.2017    source источник


Ответы (1)


Я думаю, вы хотите что-то вроде этого:

select (convert(datetime, startDate, 12) + 
        convert(time, stuff(stuff(startTime, 5, 0, ':'), 3, 0, ':')))
       ) as dt
person Gordon Linoff    schedule 06.01.2017