我有一个MySQL database带有日期类型的列DATETIME。
MySQL database
DATETIME
我从外部应用程序获取日期/时间的字符串值。该字符串值如下所示:
'5/15/2012 8:06:26 AM'
MySQL在INSERT上引发错误:"Error. Incorrect datetime value"。我的解决方法是将列类型更改为VARCHAR,但可以,但是我确实需要数据作为适当的日期和时间以备将来使用。
"Error. Incorrect datetime value"
VARCHAR
我研究了MySQL DATETIME值的可接受格式,发现MySQL想要的DATETIME格式为'YYYY-MM-DD HH:MM:SS'。
MySQL DATETIME
MySQL
'YYYY-MM-DD HH:MM:SS'
我无法更改外部应用程序以将日期/时间字符串重新格式化为格式,所以我唯一的机会就是处理它。
我想我需要做的是MySQL syntax在我的INSERT语句中使用来解析现有的字符串,但是我不确定该怎么做。我有一个想法,我可能需要以某种方式与我的INSERT语句结合使用SELECT子句STR_TO_DATE。
MySQL syntax
INSERT
SELECT
STR_TO_DATE
这是我当前的INSERT语句。我删除了其他不会引起问题的字段,只是为了使示例更简洁。
INSERT INTO tblInquiry (fldInquiryReceivedDateTime) VALUES ('5/15/2012 8:06:26')
谢谢您的帮助,我是SQL新手。
SQL
使用MySQL的STR_TO_DATE()函数来解析您要插入的字符串:
STR_TO_DATE()
INSERT INTO tblInquiry (fldInquiryReceivedDateTime) VALUES (STR_TO_DATE('5/15/2012 8:06:26 AM', '%c/%e/%Y %r'))