问题描述
'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
解决方法
对于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
,使用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 |