转换成文本格式的日期在T-SQL日期时间格式
-
25-09-2019 - |
题
我有一个在我们的SQL Server数据库加载客户端提供的文件。此文件包含基于文本的日期值,即(05102010),我需要从数据库列中读取它们,并将它们转换为常规日期时间价值=“2010-05-10 00:00:00.000”作为一个清理部分处理。
任何指导,将不胜感激。
解决方案
通过使用单向
CONVERT(datetime,RIGHT(Column,4) + left(Column,4))
例如
declare @s char(8)
select @s = '05102010'
select CONVERT(datetime,RIGHT(@s,4) + left(@s,4))
其他提示
尝试:
SELECT
CONVERT(datetime, RIGHT(YourColumn,4)
+LEFT(YourColumn,4)
) AS ProperDateTime
FROM...
工作示例:
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
输出:
ProperDateTime
-----------------------
2010-05-10 00:00:00.000
2010-03-18 00:00:00.000
(2 row(s) affected)
快速脏:
SELECT
CONVERT(DATETIME,
SUBSTRING(col, 1, 2)
+ '/' + SUBSTRING(col, 3, 2)
+ '/' + SUBSTRING(col, 5, 4))
不隶属于 StackOverflow