繁体   English   中英

日期格式转换

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM