MySQL的 - 如何分析一个INSERT语句中的字符串值,以DATETIME格式?MySQL的 -

2019-05-14 07:39发布

我有一个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新手。

Answer 1:

使用MySQL的STR_TO_DATE()函数来分析,你试图插入字符串:

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


文章来源: MySQL - How to parse a string value to DATETIME format inside an INSERT statement?