【问题标题】:Why does MySQL give error while trying to insert datetime '2019-08-13 19:00:00'?为什么 MySQL 在尝试插入 datetime '2019-08-13 19:00:00' 时会出错?
【发布时间】:2019-11-20 15:55:49
【问题描述】:

尝试将值插入 DATETIME 字段时出现错误:

错误代码:1292。日期时间值不正确:第 1 行的列 'my_date_time' 的日期时间值不正确:'​2019-08-13 19:00:00'

插入看起来像这样:

INSERT INTO `table`(`my_date_time`) VALUES('​2019-08-13 19:00:00');

表格大致如下:

CREATE TABLE `table` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `my_date_time` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

PS:这是一个 MySQL 8 数据库。

【问题讨论】:

  • 您的my_date_time 看起来如何? PS。你的整张桌子
  • 最后一个括号前有一个非打印字符..
  • 我读到这是一些数字的错误
  • 如果该列是实际的 DATETIME,那应该确实有效。您应该尝试在不复制粘贴的情况下重新键入查询,以防止非打印字符混乱,如果您对您的问题负责。
  • 只是为了澄清@P.Salmon 所说的,您的年份前面有一个 U+200B“零宽度空格”字符,应该删除。

标签: mysql


【解决方案1】:

@P.Salmon(和@phatfingers)在 cmets 中说并回答:

你的前面有一个 U+200B“零宽度空间”字符 应该删除的年份

.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 2012-07-15
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多