sql-server - 什么是 SQL Server 中的 Oracle to_date 函数等价物
问题描述
如何从 Oracle 转换这段代码以在 SQL Server 中获得相同的行为?
select to_date('20141008174025', 'YYYYMMDDHH24MISS')
from dual
解决方案
一种方法使用datetimefromparts()
:
declare @str varchar(20) = '20141008174025';
select datetimefromparts(
substring(@str, 1, 4),
substring(@str, 5, 2),
substring(@str, 7, 2),
substring(@str, 9, 2),
substring(@str, 11, 2),
substring(@str, 13, 2),
0
)
你也可以这样做:
declare @str varchar(20) = '20141008174025';
select cast(
left(@str, 8)
+ ' '
+ substring(@str, 9, 2)
+ ':'
+ substring(@str, 11, 2)
+ ':' + substring(@str, 13, 2)
as datetime
)