将datetime与AM / PM转换为标准SQL Server日期时间

时间:2017-10-06 20:18:14

标签: sql-server

我有一个YYYYMMDDHHTT时间格式的日期,如何将其转换为24小时的日期时间(即SQL服务器DATETIME

示例:201710031035AM

所需:2017-10-03 10:35:00.000

1 个答案:

答案 0 :(得分:1)

我会拆分并连接旧的字符串格式,以便SQL可以将其识别为日期字符串

SELECT CONVERT(datetime, CONCAT(
    SUBSTRING(oldFormat, 5, 2), ' ', 
    SUBSTRING(oldFormat, 7, 2), ' ', 
    SUBSTRING(oldFormat, 1, 4), ' ',
    SUBSTRING(oldFormat, 9, 2), ':',
    SUBSTRING(oldFormat, 11, 4)
), 100)

其中100是日期时间格式' mon dd yyyy hh:miAM(或PM)'。或者您可以拆分日期时间部分,然后通过DATETIMEFROMPARTS函数作为整数传递。只需确保所有旧值始终合格!