如何在 SQL 中将 2 个 Varchar 字符串转换为日期时间



我有两个vchar字段,分别包含日期和时间作为文本/字符串。

即 Fdate(YYYYmmdd(:20170402 Ftime(HHmmss(: 103101

我将如何连接它们并转换为日期时间?

转换日期是可以完成的,但我遇到的问题是在添加时间时。

提前谢谢你,

您可以使用stuff()varchar时间格式转换为日期时间格式:

select Fdate + cast(stuff(stuff(Ftime, 3, 0, ':'), 6, 0, ':') as datetime) as datetime
SELECT DATETIMEFROMPARTS (  substring('20170402',1,4) , substring('20170402',5,2), substring('20170402',7,2), substring('103101',1,2), substring('103101',3,2), substring('103101',5,2) ,  substring('103101',7,2) ) 

输出

2017-04-02 10:31:01.000

你可以使用这个:

Select cast (substring(Fdate,0,5)+'-'+ 
substring(Fdate,5,2)+'-'+ 
substring(Fdate,7,2) 
+ ' ' + 
substring(Ftime,0,3) + ':' + 
substring(Ftime,3,2) + ':' + 
substring(Ftime,5,2) 
as datetime)

输出:

yyyy-MM-dd hh:mm:ss

最新更新