2017-01-06 12 views
0

Ich habe zwei Spalten startDate (160812 - Jahr, Monat, Tag) und startTime (112345 - Stunde, mimutes, seconts) mit einem varchar Datentyp mein Ziel, sie ist verketten und sie in Datetime konvertieren. Und ich sollte andere Spalte zu ihnen hinzugefügt (duration - int)Convert varchar in Datetime und fügen Sekunden

Ich habe versucht, so etwas wie dieses:

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

aber ich erhalte eine Fehlermeldung:

Msg 241, Ebene 16, Status 1, Zeile 1
Konvertierung fehlgeschlagen, wenn Datum und/oder Uhrzeit aus Zeichenkette konvertiert werden.

Irgendwelche besseren Ideen zu versuchen?

+1

[Schlechte Gewohnheiten zu treten: den falschen Datentyp wählen] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/12 /bad-habits-to-kick-using-the-wrong-data-type.aspx) – Jamiec

Antwort

1

Ich glaube, Sie so etwas wie dies will:

select (convert(datetime, startDate, 12) + 
     convert(time, stuff(stuff(startTime, 5, 0, ':'), 3, 0, ':'))) 
     ) as dt