MySQL日期值不正确:发送2015年,而不是2002年

时间:2015-03-10 11:55:20

标签: 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年?

2 个答案:

答案 0 :(得分:2)

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

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)

答案 1 :(得分:0)

检查您的MySQL日期:

select now() from dual;

我建议您使用insert命令的日期类型:

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

没有引号它不会做,你期望什么。但我不能重现你的错误。您确定,这是作为独立插件运行而不是脚本的一部分吗?您使用的是哪个版本的MySQL以及哪个客户端?