如何在MySQL中的datetime字段中存储NULL值?
我有一个“ bill_date”字段,在结算之前要一直为空白(NULL),此时将输入日期。
我看到MySQL不喜欢datetime字段中的NULL值。你们中有没有一个简单的方法来解决这个问题,还是我被迫将最小日期用作“等效的NULL”,然后检查该日期?
谢谢。
好的,我确实看到MySQL将接受NULL值,但是如果我使用PHP更新记录,它将不会接受它作为数据库更新。
变量名称为,$bill_date
但是如果我更新记录而不发送值至,它将不会将变量保留为NULL- $bill_date
我收到此错误:
Database query failed: Incorrect datetime value: '' for column 'bill_date' at row 1
我假设我需要实际发送单词NULL或将其完全排除在更新查询之外,以避免此错误?我对吗?谢谢!!!
回答:
MySQL 确实 允许NULL
使用datetime
字段值。我只是测试了一下:
mysql> create table datetimetest (testcolumn datetime null default null);Query OK, 0 rows affected (0.10 sec)
mysql> insert into datetimetest (testcolumn) values (null);
Query OK, 1 row affected (0.00 sec)
mysql> select * from datetimetest;
+------------+
| testcolumn |
+------------+
| NULL |
+------------+
1 row in set (0.00 sec)
我正在使用此版本:
mysql> select version();+-----------+
| version() |
+-----------+
| 5.0.45 |
+-----------+
1 row in set (0.03 sec)
编辑#1:我在您的编辑中看到,您在PHP中收到的错误消息表示您正在传递一个空字符串(即''
),而不是null
。空字符串不同于null
且不是有效值datetime
,这就是为什么您收到该错误消息的原因。null
如果这是您的意思,则必须传递特殊的sql关键字。另外,请勿在单词周围加上任何引号null
。有关insert
如何插入的示例,请参见上面的声明null
。
编辑#2:您正在使用PDO吗?如果是这样,则在绑定空参数时,请确保[PDO::PARAM_NULL][1]
在绑定a时使用类型null
。有关如何使用PDO
正确插入的信息,请参见此stackoverflow问题的答案null
。
以上是 如何在MySQL中的datetime字段中存储NULL值? 的全部内容, 来源链接: utcz.com/qa/435709.html