Converter data no formato de texto em formato de data em tempo em T-SQL
-
25-09-2019 - |
Pergunta
Eu tenho um arquivo fornecido pelo cliente que é carregado em nosso banco de dados do SQL Server. Este arquivo contém valores de data baseada em texto, isto é (05102010) e preciso lê-los de uma coluna DB e convertê-los em um valor de hora de data normal = '2010-05-10 00: 00: 00.000' como parte de uma limpeza processo.
Qualquer orientação será imensamente apreciada.
Solução
de uma maneira usando
CONVERT(datetime,RIGHT(Column,4) + left(Column,4))
exemplo
declare @s char(8)
select @s = '05102010'
select CONVERT(datetime,RIGHT(@s,4) + left(@s,4))
Outras dicas
Tentar:
SELECT
CONVERT(datetime, RIGHT(YourColumn,4)
+LEFT(YourColumn,4)
) AS ProperDateTime
FROM...
Exemplo de trabalho:
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
RESULTADO:
ProperDateTime
-----------------------
2010-05-10 00:00:00.000
2010-03-18 00:00:00.000
(2 row(s) affected)
Rapido e sujo:
SELECT
CONVERT(DATETIME,
SUBSTRING(col, 1, 2)
+ '/' + SUBSTRING(col, 3, 2)
+ '/' + SUBSTRING(col, 5, 4))
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow