我有一个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'.

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

我想,我需要做的是在INSERT语句中使用MySQL syntax解析现有的字符串,但我不确定如何做到这一点.我有一些 idea ,我需要使用SELECT子句,也许是STR_TO_DATE,某种程度上结合我的INSERT语句.

这是我目前的插入声明.我删除了其他没有引起问题的字段,只是为了让示例更清晰.

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

推荐答案

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

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

Mysql相关问答推荐

MYSQL子查询

在联合查询中使用GROUP BY和ORDER BY

SQL:CAST与窗口函数组合导致语法错误

使用MySQL工作台导出具有数据的数据库表并导入到其字段具有不同数据类型的同一表中

MySQL全文索引和不区分大小写搜索带来的挑战

无法连接到扩展坞MySQL Unix套接字

外部磁盘上的MySQL表空间和数据文件

获取每个参数的记录,不重复

MySQL CHECK 约束以确保记录不使用自动增量 ID 引用自身?

Select 最高等级最多的部门名称

有没有比使用 MySQL 计划事件更好的方法来更新我的数据库表中的列?

当查询 MySQL 的 goroutine 过多时,Go 会出现panic

按长度过滤 varbinary 字段

MySQL - 如何 Select 值在数组中的行?

将 Django DB 从 SQLite 迁移到 MySQL 的最佳方法是什么?

如何用一系列日期填充表格?

从mysql中的大表中快速 Select 随机行

Doctrine2 迁移向下迁移并从浏览器而不是命令行迁移

MySQLgo 除非数字字符进行比较

'LIKE ('%this%' OR '%that%') and something=else' 不起作用