Convertir date au format texte au format datetime dans T-SQL
-
25-09-2019 - |
Question
J'ai un fichier fourni par le client qui est chargé dans notre base de données SQL Server. Ce fichier contient des valeurs de date à base de texte-à-dire (05102010) et je dois les lire à partir d'une colonne db et les convertir en une valeur de temps de date normale = « 2010-05-10 00: 00: 00.000 » dans le cadre d'un nettoyage processus.
Toute orientation serait grandement apprécié.
La solution
dans un sens à l'aide de
CONVERT(datetime,RIGHT(Column,4) + left(Column,4))
exemple
declare @s char(8)
select @s = '05102010'
select CONVERT(datetime,RIGHT(@s,4) + left(@s,4))
Autres conseils
Essayez:
SELECT
CONVERT(datetime, RIGHT(YourColumn,4)
+LEFT(YourColumn,4)
) AS ProperDateTime
FROM...
exemple de travail:
DECLARE @YourTable table (StringDate char(8))
INSERT @YourTable VALUES ('05102010')
INSERT @YourTable VALUES ('03182010')
SELECT
CONVERT(datetime, RIGHT(StringDate,4)
+LEFT(StringDate,4)
) AS ProperDateTime
FROM @YourTable
SORTIE:
ProperDateTime
-----------------------
2010-05-10 00:00:00.000
2010-03-18 00:00:00.000
(2 row(s) affected)
rapide et sale:
SELECT
CONVERT(DATETIME,
SUBSTRING(col, 1, 2)
+ '/' + SUBSTRING(col, 3, 2)
+ '/' + SUBSTRING(col, 5, 4))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow