如何將字串yyyyMMddHHmmss轉成Datetime呢?

有朋友在FB上問到,他們將日期的分隔符號都置換成空字串後的字串,要如何將它再轉回成DateTime呢?

例如日期 2013/04/02 14:08:37 會轉成 20130402140837 。 要如何將它再轉回成DateTime呢?

有想到以下的方式,

01DECLARE @DateTimeVaue VARCHAR(30)
02SET @DateTimeVaue = '20130402140837' -- 2013/04/02 14:08:37
03   
04--使用字串函數先將字串轉成日期格式字串再轉成DateTime     (20130402140837 => 20130402 14:08:37)
05SELECT  CONVERT(DATETIME, LEFT(@DateTimeVaue, 8) + ' '
06        + SUBSTRING(@DateTimeVaue, 9, 2) + ':' 
07        + SUBSTRING(@DateTimeVaue, 11, 2) + ':'
08        + RIGHT(@DateTimeVaue, 2), 112)
09  
10--使用DATEADD來將時間加總
11SELECT  DATEADD(s, CAST(RIGHT(@DateTimeVaue, 2) AS INT),
12                DATEADD(n, CAST(SUBSTRING(@DateTimeVaue, 11, 2) AS INT),
13                        DATEADD(hh,
14                                CAST(SUBSTRING(@DateTimeVaue, 9, 2) AS INT),
15                                CONVERT(DATETIME, LEFT(@DateTimeVaue, 8), 112))))

 

網路上查到的做法「how can i convert 'yyyymmddhhmmss' to datetime」,如下,

1-- 使用STUFF先將字串轉成日期格式字串再轉成DateTime   (20130402140837 => 20130402 14:08:37)    
2DECLARE @DateTimeVaue VARCHAR(30)
3SET @DateTimeVaue = '20130402140837' -- 2013/04/02 14:08:37
4SELECT  CONVERT(DATETIME, STUFF(STUFF(STUFF(@DateTimeVaue, 9, 0, ' '), 12, 0, ':'), 15, 0, ':'))

 

不知各位是否有其他的方式呢

转载于:https://www.cnblogs.com/Nina-piaoye/p/3166803.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值