有朋友在FB上問到,他們將日期的分隔符號都置換成空字串後的字串,要如何將它再轉回成DateTime呢?
例如日期 2013/04/02 14:08:37 會轉成 20130402140837 。 要如何將它再轉回成DateTime呢?
有想到以下的方式,
01 |
DECLARE @DateTimeVaue VARCHAR(30) |
02 |
SET @DateTimeVaue = '20130402140837' |
05 |
SELECT CONVERT(DATETIME, LEFT(@DateTimeVaue, 8) + ' ' |
06 |
+ SUBSTRING(@DateTimeVaue, 9, 2) + ':' |
07 |
+ SUBSTRING(@DateTimeVaue, 11, 2) + ':' |
08 |
+ RIGHT(@DateTimeVaue, 2), 112) |
11 |
SELECT DATEADD(s, CAST(RIGHT(@DateTimeVaue, 2) AS INT), |
12 |
DATEADD(n, CAST(SUBSTRING(@DateTimeVaue, 11, 2) AS INT), |
14 |
CAST(SUBSTRING(@DateTimeVaue, 9, 2) AS INT), |
15 |
CONVERT(DATETIME, LEFT(@DateTimeVaue, 8), 112)))) |
網路上查到的做法「how can i convert 'yyyymmddhhmmss' to datetime」,如下,
2 |
DECLARE @DateTimeVaue VARCHAR(30) |
3 |
SET @DateTimeVaue = '20130402140837' |
4 |
SELECT CONVERT(DATETIME, STUFF(STUFF(STUFF(@DateTimeVaue, 9, 0, ' '), 12, 0, ':'), 15, 0, ':')) |
不知各位是否有其他的方式呢