zoukankan      html  css  js  c++  java
  • sqlserver 东八时区的英文时间转换

    今天新浪微博的东东,发现其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','9')
    	set @Soure=replace(@Soure,'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 问题解决。。。。。。

  • 相关阅读:
    搜索部分学习小结
    递归与搜索部分知识点小结
    匿名函数
    监督学习和非监督学习
    单变量线性回归
    神经网络(2)
    html
    javascript
    win10+celery4.x以上+redis的天坑
    Django-Views
  • 原文地址:https://www.cnblogs.com/dingdingmao/p/3146483.html
Copyright © 2011-2022 走看看