2017-02-16 120 views
0

我試圖將轉換爲datetime的[YYYYmmdd hhmmss]格式的varchar列標題(Prod_time)。我需要能夠從特定天數中提取數據,並且我希望能夠將varchar轉換爲datetime以便於實現。如何將varchar轉換爲datetime

有沒有辦法將varchar轉換爲datetime?不需要特殊的日期時間格式,只需要進行數據類型轉換。

+2

爲什麼哦爲什麼你在第一個地方將日期時間信息存儲在varchar列中?這必須是唯一最受濫用的數據類型決定。 –

+0

相信我,如果我可以按自己的方式,我們不會將日期/時間數據存儲在varchar列中!它使得處理數據變得困難得多,並且需要額外的線條和操作。但在我工作的公司,管理政治和安全等方面阻礙了不必要的麻煩,例如這樣= / –

回答

3

您需要在這裏強制使用幾個字符,以便convert函數知道如何處理這個問題。我們可以很容易地使用STUFF。根據提供的字符串格式,這工作。

declare @SomeChar varchar(20) = '20170216 100903' 

select CONVERT(datetime, STUFF(STUFF(@SomeChar, 12, 0, ':'), 15, 0, ':')) 

如果有可能,應該考慮將數據類型轉換爲日期時間。它消除了這種麻煩,並防止了無效值。