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