2017-01-06 4 views
0

J'ai deux colonnes startDate (160812 - année, mois, jour) et startTime (112345 - heure, mimutes, seconts) avec un varchar datatype mon objectif est concaténer et de les convertir en datetime. Et j'ajouté les autres colonnes (duration - int)Convertir varchar en datetime et ajouter quelques secondes

J'ai essayé quelque chose comme ceci:

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

mais je reçois un message d'erreur:

Msg 241, niveau 16, état 1, Ligne 1
La conversion a échoué lors de la conversion de la date et/ou de l'heure de la chaîne de caractères.

De meilleures idées à essayer?

+1

[Les mauvaises habitudes de kicker: choisir le mauvais type de données] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/12 /bad-habits-to-kick-using-the-wrong-data-type.aspx) – Jamiec

Répondre

1

Je pense que vous voulez quelque chose comme ceci:

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