mysql STR_TO_DATE函数结束字符的问题

问题描述

我正在尝试使用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

解决方法

对于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 |

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...