有朋友在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, ':' )) |
不知各位是否有其他的方式呢