今天新浪微博的小编,发现其CreateAt创建时间居然为 英文的时间,并且里面包含有英文。纠结了。
时间格式如下:
Wed May 23 16:04:54 +0800 2012
Wed May 23 16:04:33 +0800 2012
Wed May 23 16:03:18 +0800 2012
Wed May 23 16:01:47 +0800 2012
Wed May 23 16:01:17 +0800 2012
Wed May 23 16:01:00 +0800 2012
Wed May 23 15:57:34 +0800 2012
Wed May 23 15:55:55 +0800 2012
Wed May 23 15:53:37 +0800 2012
经过偶认真的分析,找到规则:+0800表示的是东八时区,而最前面的Wed 表示的是周几 而在紧跟在后面的 May则代表的月份。2012为年,23为日,16:04:54时分秒
于是针对这一规则的字符串 创建通用自定义sqlserver方法如下:
create function EnDatetoDate ( @Soure varchar(30) ) Returns datetime as begin set @Soure= substring(replace(@Soure,'+0800 ',''),5,21) set @Soure=replace(@Soure,'Jan','1') set @Soure=replace(@Soure,'Feb','2') set @Soure=replace(@Soure,'Mar','3') set @Soure=replace(@Soure,'Apr','4') set @Soure=replace(@Soure,'May','5') set @Soure=replace(@Soure,'Jun','6') set @Soure=replace(@Soure,'Jul','7') set @Soure=replace(@Soure,'Aug','8') set @Soure=replace(@Soure,'Sept','9') set @Soure=replace(@Soure,'Sep','Oct','10') set @Soure=replace(@Soure,'Nov','11') set @Soure=replace(@Soure,'Dec','12') return cast(@Soure as datetime) end
转换如下:2012-03-30 20:19:30.000
OK 问题解决。。。。。。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。