5
我認識到已經發布了很多關於將字符串轉換爲datetime
的問題,但是我還沒有找到任何用於轉換像20120225143620
這樣的包含秒的字符串的任何內容。將'YYYYMMDDHHMMSS'格式的字符串轉換爲datetime
我試圖執行一個乾淨的轉換,沒有將每個段串連出來,並與/
和:
連接。
有沒有人有任何建議?
我認識到已經發布了很多關於將字符串轉換爲datetime
的問題,但是我還沒有找到任何用於轉換像20120225143620
這樣的包含秒的字符串的任何內容。將'YYYYMMDDHHMMSS'格式的字符串轉換爲datetime
我試圖執行一個乾淨的轉換,沒有將每個段串連出來,並與/
和:
連接。
有沒有人有任何建議?
可以使用STUFF()
方法插入字符到您的字符串,它在格式上的值SQL Server將能夠理解:
DECLARE @datestring NVARCHAR(20) = '20120225143620'
-- desired format: '20120225 14:36:20'
SET @datestring = STUFF(STUFF(STUFF(@datestring,13,0,':'),11,0,':'),9,0,' ')
SELECT CONVERT(DATETIME, @datestring) AS FormattedDate
輸出:
FormattedDate
=======================
2012-02-25 14:36:20.000
這方法將工作,如果你的字符串總是相同的長度和格式,並且它從字符串的結尾到開始產生這種格式的值:YYYYMMDD HH:MM:SS
爲此,無論如何您都不需要分隔日期部分,因爲SQL Server能夠在格式化時理解它。
相關閱讀:
STUFF函數將字符串插入另一個字符串。它會刪除開始位置第一個字符串中的指定長度的字符,然後將第二個字符串插入到開始位置的第一個字符串中。
STUFF(character_expression,start,length,replaceWith_expression)