我在
的列中插入此内容 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年?
答案 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以及哪个客户端?