【问题标题】:casting in MySQL在 MySQL 中进行铸造
【发布时间】:2010-12-11 15:50:51
【问题描述】:

我有一个 varchar 字段,看起来像(遗憾的是我无法控制数据):

Fri, 30 Oct 2009 06:30:00 EDT

有没有办法将其转换为时间戳格式,以便我可以根据它进行排序?

【问题讨论】:

    标签: sql mysql casting


    【解决方案1】:

    使用STR_TO_DATE

    但请记住,这对于大量行来说效率很低。

    mysql> SELECT  STR_TO_DATE("Fri, 30 Oct 2009 06:30:00 EDT", "%a, %e %b %Y %H:%i:%S EDT");
    +---------------------------------------------------------------------------+
    | STR_TO_DATE("Fri, 30 Oct 2009 06:30:00 EDT", "%a, %e %b %Y %H:%i:%S EDT") |
    +---------------------------------------------------------------------------+
    | 2009-10-30 06:30:00                                                       | 
    +---------------------------------------------------------------------------+
    1 row in set (0.03 sec)
    

    【讨论】:

      【解决方案2】:
      SELECT  STR_TO_DATE('Fri, 30 Oct 2009 06:30:00 EDT', '%a, %d %b %Y %H:%i:%s EDT')
      

      【讨论】:

        【解决方案3】:

        你试过了吗:

        SELECT [...], CAST(varchar_field as DATETIME) as converted FROM [...]
        

        见manual entry for cast here。

        如果这不起作用,您可以尝试str_to_date function。此函数采用字符串和格式描述并将其转换为日期值。 这些是您可以使用的格式值:

        %a 缩写的工作日名称 (Sun..Sat) %b 缩写月份名称(Jan..Dec) %c 月份,数字 (0..12) %D 带有英文后缀(0th, 1st, 2nd, 3rd, ...)的月份中的某一天 %d 日期,数字 (00..31) %e 日期,数字 (0..31) %f 微秒 (000000..999999) %H 小时 (00..23) %h 小时 (01..12) %I 小时 (01..12) %i 分钟,数字 (00..59) %j 一年中的某一天 (001..366) %k 小时 (0..23) %l 小时 (1..12) %M 月份名称(一月..十二月) %m 月份,数字 (00..12) %p 上午或下午 %r 时间,12 小时(hh:mm:ss 后跟 AM 或 PM) %S 秒 (00..59) %s 秒 (00..59) %T 时间,24 小时制 (hh:mm:ss) %U 周 (00..53),其中星期日是一周的第一天 %u 周 (00..53),其中星期一是一周的第一天 %V Week (01..53),其中星期日是一周的第一天;与 %X 一起使用 %v 周 (01..53),其中星期一是一周的第一天;与 %x 一起使用 %W 工作日名称(星期日..星期六) %w 星期几(0=星期日..6=星期六) %X 星期的年份,其中星期日是一周的第一天,数字,四位数字;与 %V 一起使用 %x 一周的年份,其中星期一是一周的第一天,数字,四位数字;与 %v 一起使用 %Y 年份,数字,四位数 %y 年份,数字(两位数) %% 文字“%”字符 %x x,对于上面未列出的任何“x”

        【讨论】:

          猜你喜欢
          • 2013-12-17
          • 1970-01-01
          • 1970-01-01
          • 2020-09-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-05-12
          • 1970-01-01
          相关资源
          最近更新 更多