2017-10-06 231 views
0

我在YYYYMMDDHHTT时间格式的日期,我怎样才能将它转换为24小时的日期时间(即SQL服务器DATETIME转换日期时间带AM/PM标准的SQL Server日期时间

例子:201710031035AM

期望:2017-10-03 10:35:00.000

+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函数作为整数。只要确保所有旧值始终保持一致!

+0

这是我想到的,只是希望有一个更有说服力的解决方案。 – TomNash

+0

SQL Server识别的字符串格式相当有限:https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql – zambonee

+0

刚刚用DATETIMEFROMPARTS – TomNash