【问题标题】:issue with mysql STR_TO_DATE() function ending charactersmysql STR_TO_DATE() 函数结束字符的问题
【发布时间】:2020-12-08 21:08:30
【问题描述】:

我正在尝试使用 str_to_Date 函数来转换类似的字符串

'30/09/2010 3:33:51 p.m.' and '30/09/2010 12:00:00 a.m.'(excluding quotations) 

转换成日期时间。

但是,我无法添加最后一个字符“p.m.”或“上午”发挥作用

我试过的是

SET datecolumn = STR_TO_DATE(left(datecolumn(23), '%d/%m%Y %h:%i:%s %_.m.') 

SET datecolumn = STR_TO_DATE(left(datecolumn(18), '%d/%m%Y %h:%i:%s') 

TIA

【问题讨论】:

  • 格式字符 %p 处理 AM 和 PM。但我不知道它是否处理上午和下午。你试过了吗?

标签: mysql str-to-date


【解决方案1】:

【讨论】:

    【解决方案2】:

    使用REPLACE() 删除上午/下午的点并应用正确的格式:

    set datecolumn = str_to_date(
        replace(left(datecolumn, 24), '.', ''),
        '%d/%m/%Y %r'
    )
    

    我使用函数LEFT(),因为它存在于你的代码中,虽然我不知道它是否真的需要。
    请参阅demo
    结果:

    | date                |
    | ------------------- |
    | 2010-09-30 15:33:51 |
    | 2010-09-30 00:00:00 |
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-05
      • 2020-07-30
      • 1970-01-01
      • 2016-01-09
      • 2016-03-25
      • 1970-01-01
      • 2014-12-01
      • 2019-07-14
      相关资源
      最近更新 更多