小编典典

MySQL-如何在INSERT语句中将字符串值解析为DATETIME格式?

mysql

我有一个MySQL database带有日期类型的列DATETIME

我从外部应用程序获取日期/时间的字符串值。该字符串值如下所示:

'5/15/2012 8:06:26 AM'

MySQL在INSERT上引发错误:"Error. Incorrect datetime value"。我的解决方法是将列类型更改为VARCHAR,但可以,但是我确实需要数据作为适当的日期和时间以备将来使用。

我研究了MySQL DATETIME值的可接受格式,发现MySQL想要的DATETIME格式为'YYYY-MM-DD HH:MM:SS'

我无法更改外部应用程序以将日期/时间字符串重新格式化为格式,所以我唯一的机会就是处理它。

我想我需要做的是MySQL syntax在我的INSERT语句中使用来解析现有的字符串,但是我不确定该怎么做。我有一个想法,我可能需要以某种方式与我的INSERT语句结合使用SELECT子句STR_TO_DATE

这是我当前的INSERT语句。我删除了其他不会引起问题的字段,只是为了使示例更简洁。

INSERT INTO tblInquiry (fldInquiryReceivedDateTime) VALUES ('5/15/2012 8:06:26')

谢谢您的帮助,我是SQL新手。


阅读 778

收藏
2020-05-17

共1个答案

小编典典

使用MySQL的STR_TO_DATE()函数来解析您要插入的字符串:

INSERT INTO tblInquiry (fldInquiryReceivedDateTime) VALUES
  (STR_TO_DATE('5/15/2012 8:06:26 AM', '%c/%e/%Y %r'))
2020-05-17