MySQL 错误的日期值 : Sending 2015 but instead 2002

标签 mysql

我将其插入到我的列中

 PatientID       | int(3)
 DoctorID        | int(3)
 DrugID          | int(3)
 TreatmentResult | varchar(20)
 TreatmentDate   | date
 TreatmentTime   | time


INSERT INTO TREATMENT VALUES(1, 23, 1, 'etuigjih', 2015-03-10, '19:25:22');

但随后会导致错误:

Incorrect date value: '2002' for column 'TreatmentDate' at row 1

为什么我的日期是 2015 年,但它发送的是 2002 年?

最佳答案

您需要在日期值两边加上引号,以便将其视为字符串,如下所示:

INSERT INTO TREATMENT VALUES(1, 23, 1, 'etuigjih', '2015-03-10', '19:25:22');

否则 MySQL 会首先将该表达式视为 2015 减 3 减 10,即 2002,然后尝试将其隐式转换为日期,从而给出您看到的错误。

查看“2002”的来源:

mysql> select 2015-03-10;
+------------+
| 2015-03-10 |
+------------+
|       2002 |
+------------+
1 row in set (0.00 sec)

关于MySQL 错误的日期值 : Sending 2015 but instead 2002,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28963079/

相关文章:

MySQL - 从现有 .sql 文件运行脚本时遇到问题,该文件应创建架构、其表并在 Workbench 中插入所有必要的数据

mysql - 实数是MySQL

mysql - 在 mysql 中使用默认函数拆分 MySql 值?

java - mysql空指针异常

php - 按天按周分组获取最近 4 周的记录

mysql更新增量int字段为空

php - 跟踪页面浏览量并存储在 MySQL 中的最佳方式

mysql - 哪一个是正确的?

php - SQLSTATE [HY000] [1049] 未知数据库 ' register_login'

php - 使用 PDO 加载 CSV 文件会导致语法错误