web-dev-qa-db-fra.com

Comment convertir une colonne de texte en date-heure en SQL

J'ai une colonne qui est un texte:

Remarques (texte, null)

Un exemple de valeur est "21/05/2013 09:45:48"

Comment est-ce que je le convertis en format de date et heure comme ceci: "2013-05-21 09: 45: 48.000"

La raison de la conversion est que j’essayais d’obtenir le nombre total d’heures entre une colonne datetime et le cachet de la date dans la colonne Remarks. Je pensais à quelque chose comme ça:

Remarques (text, null) - Date_Sent (datetime, null)

Pour être clair, les colonnes représentent la date et l'heure à laquelle une demande d'un client a été envoyée (Date_Sent) et la dernière réponse d'un représentant à propos de la demande (Réponse), donc pour un échantillon de Date_Sent ayant une valeur de "2013-05- 21 08: 00: 00.000 "et une réponse avec une valeur de" 5/21/2013 10:00:00 AM ", je devrais obtenir une valeur de 2,00 (2 heures). Malheureusement, dans la base de données sur laquelle je travaille, Remarks est un texte et Date_Sent est une date/heure. 

Je suis un peu nouveau dans SQL, alors j'ai vraiment besoin d'aide sur ce sujet :( TIA!

9
Poch

Utilisez convert avec style 101.

select convert(datetime, Remarks, 101)

Si votre colonne est vraiment text vous devez convertir en varchar avant de convertir en datetime

select convert(datetime, convert(varchar(30), Remarks), 101)
12
Mikael Eriksson

Dans SQL Server, transformez le texte en datetime

select cast('5/21/2013 9:45:48' as datetime)
5
Mudassir Hasan

Cela marche:

SELECT STR_TO_DATE(dateColumn, '%c/%e/%Y %r') FROM tabbleName WHERE 1
0
Junu