【发布时间】:2016-06-03 19:21:20
【问题描述】:
我有一张桌子:
mysql> describe sk_users;
+------------------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------------------+--------------+------+-----+---------+----------------+
| name | varchar(255) | NO | | NULL | |
| dst_date | datetime(6) | YES | | NULL | |
+------------------------------+--------------+------+-----+---------+----------------+
和数据:
mysql> select name, dst_date from sk_users;
+------+----------------------------+
| name | dst_date |
+------+----------------------------+
| a | 2023-02-28 00:00:00.000000 |
| b | 2016-06-01 00:00:00.000000 |
| c | 0000-00-00 00:00:00.000000 |
+------+----------------------------+
我想将“dst_date”字段从日期时间转换为日期,当我尝试这样做时 - 出现错误:
mysql> ALTER TABLE `sk_users` CHANGE `dst_date` `dst_date` DATE NULL;
ERROR 1292 (22007): Incorrect date value: '0000-00-00 00:00:00' for column 'dst_date' at row 3
对不起,我不知道为什么我不能这样做。你能帮帮我吗?
感谢 juergen,我也尝试更新表以使用 NULL 值,但它也给了我一个错误:
ERROR 1292 (22007): Incorrect datetime value: '0000-00-00 00:00:00' for column 'dst_date' at row 3
【问题讨论】:
-
为什么不用
null而不是0000-00-00?首先更新表格 - 将所有这些日期设置为null