数据库中字段的转换(varchar转换成datetime)

时间:2025-03-27 10:40:05
由于

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]