代码之家  ›  专栏  ›  技术社区  ›  sfgroups

mysql将字符串转换为日期时间格式

  •  0
  • sfgroups  · 技术社区  · 6 年前

    在MySQL中,尝试将字符串转换为日期时间格式,但返回空值。

    > select STR_TO_DATE('8/16/18 7:00 PM', '%c/%e/%Y %r');
    +-------------------------------------------------+
    | STR_TO_DATE('8/16/18 7:00 PM', '%c/%e/%Y %r')   |
    +-------------------------------------------------+
    | NULL                                            |
    +-------------------------------------------------+
    

    谢谢

    1 回复  |  直到 6 年前
        1
  •  1
  •   Erubiel    6 年前

    你必须符合格式,%r不符合晚上7点

    https://www.w3schools.com/sql/func_mysql_str_to_date.asp

    %r = Time in 12 hour AM or PM format (hh:mm:ss AM/PM)
    

    如您所见,需要两位数的小时和秒,而您没有。

    您也不符合%Y预期的四位数年份。。。所以我把它改成了%y

    像这样试试。

    select STR_TO_DATE('8/16/18 7:00 PM', '%c/%e/%y %l:%i %p');