mysql STR_TO_DATE() 函数结束字符的问题
Posted
技术标签:
【中文标题】mysql STR_TO_DATE() 函数结束字符的问题【英文标题】:issue with mysql STR_TO_DATE() function ending characters 【发布时间】: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。但我不知道它是否处理上午和下午。你试过了吗? 【参考方案1】:对于manageAM/PM 使用p%
SET datecolumn = STR_TO_DATE(left(datecolumn(23), '%d/%m%Y %h:%i:%s %p')
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format
【讨论】:
【参考方案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 |
【讨论】:
以上是关于mysql STR_TO_DATE() 函数结束字符的问题的主要内容,如果未能解决你的问题,请参考以下文章