我想在公司表中添加一个joindate字段:
alter table company add joindate date;
我想在joindate字段中设置空值:
$joindate = '';
更新查询:
$query = "UPDATE company
SET joindate = '" .$joindate. "'
WHERE ID = '" .$ID. "'";
当我更新记录时,它会显示以下警告:
Data truncated for column 'joindate' ...
为什么呢?我应该如何在joindate字段中设置空值?
答案 0 :(得分:1)
列类型为date
,而不是varchar
(或某种字符串类型)。因此,您必须按格式或NULL
编写正确的日期。空字符串''
的值不正确,因此您的值会被截断并插入0000-00-00
。
答案 1 :(得分:0)
您可以在列规则中允许该值为null。除非出于某种原因,否则您需要一个空值'。
答案 2 :(得分:0)
您正尝试在日期列中输入字符串。这是不允许的,数据被截断/删除;改为输入最低日期。
我的建议是将值保持为NULL,这是joindate添加joindate列时所有行的内容。该列不包含任何值(由NULL表示)没有任何问题。
如果您要执行alter table tablename add field1 int
然后update tablename set field = '' where id = 1
,您将收到类似的警告Incorrect integer value: '' for column 'field1' at row 1
,该列的值将为0.