我有時間記錄存儲在我的SQL Server數據庫中作爲varchar
,我試圖將其轉換爲時間。SQL Server:將varchar轉換爲具有無效記錄的時間(秒寫爲60)
例如,數據存儲爲12490811
我使用的語法:
cast(convert(time, stuff(stuff(stuff(CommentAddedTime, 3, 0, ':'), 6, 0, ':'), 9, 0, '.')) as time(0)) as 'CommentAddedTime'
但也有存儲一些無效的記錄,其中秒超過59像11356000這並不讓我將varchar
轉換爲時間。我想知道,如果我們可以使用Case語句或者像'00'這樣的東西,在看到寫入59的秒數時使用秒,否則使用相同的值。我相信語法應該是這樣的(我不知道該怎麼在「然後」語句寫):
select
case
when substring(stuff(stuff('11356000', 3, 0, ':'), 6, 0, ':'),7,10) > 5900
then ....
else
cast(convert(time, stuff(stuff(stuff(CommentAddedTime, 3, 0, ':'), 6, 0, ':'), 9, 0, '.')) as time(0))
end as 'CommentAddedTime'
請幫助我什麼,我們可以怎樣做呢?或者,如果有任何其他方法來解決這個問題,因爲我不能排除這些記錄。
在此先感謝!
是什麼格式的字符串? –