选择空的 mysql 日期时间字段
有没有比这更好的方法来选择空的日期时间字段?
SELECT * FROM `table` WHERE `datetime_field` = '0000-00-00 00:00:00'
有没有比这更好的方法来选择空的日期时间字段?
SELECT * FROM `table` WHERE `datetime_field` = '0000-00-00 00:00:00'
在什么方面更好?该查询可以完成您要求它执行的所有操作,并且只要有索引,它就会尽可能快地获得。datetime_field
如果您担心查询看起来很“丑陋”,请不要担心。其意图非常明确。
您可以考虑的唯一可能的改进是对这些零日期/时间行使用 NULL,在这种情况下,您的查询将变为:
SELECT * FROM `table` WHERE `datetime_field` IS NULL
这就是我对符合标准的DBMS所做的。我的理解是,MySQL可能以这种可怕的方式表示真正的NULL日期时间字段,在这种情况下,我想这可能不起作用。IS NULL
SELECT * FROM db.table WHERE UNIX_TIMESTAMP(datetime_field) = 0
我喜欢这个代码,因为它不仅捕获“零日期”(例如'0000-00-00 00:00:00')还捕获“日期中的零”(例如'2010-01-00 00:00:00')