我有一个从 XML 解析的字符串,它代表日期时间。字符串格式为:'20200915114000' - (YYYYMMDDhhmmss)
SQL Server 中是否有一个函数可以将此字符串转换或解析为日期时间,还是应该手动拆分字符串并将其连接到日期时间?
我有一个从 XML 解析的字符串,它代表日期时间。字符串格式为:'20200915114000' - (YYYYMMDDhhmmss)
SQL Server 中是否有一个函数可以将此字符串转换或解析为日期时间,还是应该手动拆分字符串并将其连接到日期时间?
我的问题的解决方案:
declare @sDate char(14), @sDateOK char(20)
set @sDate = '20200915114000'
set @sDateOK = substring(@sDate,1,8) + ' ' + substring(@sDate,9,2) + ':' + substring(@sDate,11,2) + ':' + substring(@sDate,13,2)
select convert(datetime,@sDateOK ) as Date
如何做到这一点,分 3 个步骤:
C:\> SQLCMD
1> select convert(datetime,'20200915114000' )
2> go
Msg 241, Level 16, State 1, Server ZES, Line 1
Conversion failed when converting date and/or time from character string.
1> select convert(datetime,'20200915 114000' )
2> go
Msg 242, Level 16, State 3, Server ZES, Line 1
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
1> select convert(datetime,'20200915 11:40:00' )
2> go
-----------------------
2020-09-15 11:40:00.000
(1 rows affected)
1>
结论您需要在要转换'20200915114000'
为的字符串中添加一个空格和 3 个“:” '20200915 11:40:00'
。在此之后,一个简单的 CONVERT 就可以解决问题。