mysql IS NULL和IS NOT NULL不互斥

时间:2014-06-18 15:14:38

标签: mysql null

SELECT * FROM table WHERE datefield IS NULL

返回20条记录

SELECT * FROM table WHERE datefield IS NOT NULL

返回相同的20条记录和另外20条输入日期的记录

IS NULLIS NOT NULL不相互排斥?

字段定义是: datefield date NOT NULL

1 个答案:

答案 0 :(得分:0)

没有显式默认值的NOT NULL列将使用隐式默认值(对于类型)。对于date列,默认值为0

来自MySQL docs

  

如果列不能将NULL作为值,则MySQL定义该列   使用显式DEFAULT子句,使用隐式默认值   列数据类型。隐式默认值定义如下:

     
      
  • 对于TIMESTAMP以外的日期和时间类型,默认值为该类型的相应“零”值。对于第一个TIMESTAMP列   在表中,默认值是当前日期和时间。看到   第11.3节“日期和时间类型”。
  •