[英]Date Format Convert
我正在处理 sql DB,其中日期以这种格式“2020-348T08:55”记录。 我需要将其转换为日期时间。
请指导是否有可能的方法来做到这一点?
使用字符串和日期/时间函数提取年份和日期以创建没有时间的 DATETIME,最后添加时间部分:
SELECT
CAST(DATEADD(
DAY,
CAST(SUBSTRING(LEFT(col, CHARINDEX('T', col) - 1), 6, LEN(col)) AS INTEGER),
DATEFROMPARTS(CAST(LEFT(col, 4) AS INTEGER) - 1, 12, 31)
) AS DATETIME) +
CAST(RIGHT(col, 5) AS DATETIME) AS result
FROM tablename
如果天数部分始终是 3 位数字,则可以简化:
SELECT
CAST(DATEADD(
DAY,
CAST(SUBSTRING(col, 6, 3) AS INTEGER),
DATEFROMPARTS(CAST(LEFT(col, 4) AS INTEGER) - 1, 12, 31)
) AS DATETIME) +
CAST(RIGHT(col, 5) AS DATETIME) AS result
FROM tablename
将col
替换为您的列名。
请参阅演示。
结果:
> | result |
> | :---------------------- |
> | 2020-12-13 08:55:00.000 |
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.