转换日期格式以插入MySQL数据库

RDD*_*RDD 3 mysql date-format datetime

我收到的日期格式为“ Sun Jun 20 00:40:27 IST 2021 ”。我需要将其以datetime(6)格式插入到我的 MySQL 数据库中。

我用了

STR_TO_DATE('Sun Jun 20 00:40:27 IST 2021','%d/%m/%Y %T')
Run Code Online (Sandbox Code Playgroud)

并收到

日期时间值不正确:函数 str_to_date 错误为“Sun Jun 20 00:40:27 IST 2021”。

我也尝试过

date_format('Sun Jun 20 00:40:27 IST 2021','%d/%m/%Y %T')
Run Code Online (Sandbox Code Playgroud)

并收到

日期时间值不正确:'Sun Jun 20 00:40:27 IST 2021

谁能指导我修复它?

PS:我正在使用prepared statement,executeBatch()将数据插入表中。

Ric*_*mes 9

要存储到 中DATETIME,请STR_TO_DATE()在描述字符串格式的位置使用:

 SELECT STR_TO_DATE('Sun Jun 20 00:40:27 IST 2021', "%a %b %d %H:%i:%s IST %Y");
Run Code Online (Sandbox Code Playgroud)

-->2021-06-20 00:40:27

作为一个单独的步骤,您可以使用不同的格式字符串以不同的SELECT格式设置日期时间。DATE_FORMAT()

SELECT DATE_FORMAT('2021-06-20 00:40:27', '%d/%m/%Y');
Run Code Online (Sandbox Code Playgroud)

-->20/06/2021 00:40:27

您不能在单个函数调用中执行这两种转换。

存储到DATETIME(6)will store中2021-06-20 00:40:27.000000。(在你的例子中,被(6)浪费了。

如果您正在使用LOAD DATA,有一种方法可以STR_TO_DATE像插入一样进行操作。

我不知道如何概括“IST”;请注意,我在示例代码中基本上跳过了它。