我有一个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
语句中解析现有字符串,但我不知道该怎么做。我有一点想法,我需要使用SELECT
子句,也许STR_TO_DATE
,以某种方式结合我的INSERT语句。
这是我当前的INSERT语句。我删除了其他不会导致问题的字段,只是为了使示例清理干净。
INSERT INTO tblInquiry (fldInquiryReceivedDateTime) VALUES ('5/15/2012 8:06:26')
感谢您的帮助,我是SQL
新手。
答案 0 :(得分:86)
使用MySQL的STR_TO_DATE()
函数来解析您尝试插入的字符串:
INSERT INTO tblInquiry (fldInquiryReceivedDateTime) VALUES
(STR_TO_DATE('5/15/2012 8:06:26 AM', '%c/%e/%Y %r'))