數據庫中字段的轉換(varchar轉換成datetime)

由於

select *,convert(datetime,substring(Col008,1,8))as Col008 from s2

此種常用轉換方式仍然有限制性,例如在數據庫把字段更新成datetime時,不能精確求出分秒,或者有越界產生。

所以可以用下面的方式進行完整的時間轉換


update s12 set Col008=cast  

(cast(substring (Col008,1,4)   as  varchar)+ '- '

+cast(substring (Col008,5,2)   as  varchar)+ '- '

+cast(substring (Col008,7,2)   as  varchar)+ '   '  

+cast(substring (Col008,9,2)   as   varchar)+': '+  

cast(substring (Col008,11,2)   as  varchar)+ ': '+

cast(substring (Col008,13,2)   as  varchar)+ '. '+  

cast('000'  as   varchar)   as  datetime)

或直接生成一張新表

select

 convert(datetime,substring(convert(char(8),[Col006]),1,4)+'.'

+substring(convert(char(8),[Col006]),5,2)+'.'

+substring(convert(char(8),[Col006]),7,2)+''

+substring(convert(char(20),[Col006]),9,2)+':'

+substring(convert(char(20),[Col006]),11,2)+':'

+substring(convert(char(20),[Col006]),13,2))[Col006],[Col001],[Col002],[Col003],[Col004],[Col005]

INTO [dbo].[43969]

from [dbo].[s111]




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章