MySQL查询中的where条件,日期不等于'0000-00-00'

7

我正在尝试编写一个MySQL查询,其中where条件为(WHERE date !='0000-00-00')。但是查询没有正确执行。

WHERE date != '0000-00-00'

1
发布你的代码,展示一份数据示例和期望的结果。 - ScaisEdge
3个回答

11

先将日期转换为字符格式,然后再尝试。

WHERE CAST(`date` AS CHAR(10)) != '0000-00-00'

或者

WHERE `date` != 0
WHERE UNIX_TIMESTAMP(`date`) != 0

或者

WHERE `date` IS NOT NULL

或者

WHERE YEAR(`date`)=0

WHERE date IS NOT NULL i my case showed row with value 0000-00-00 . Column type was date. Storage Engine InnoDB, collation utf8_unicode_ci and used fetchAll(PDO::FETCH_ASSOC) - user2360831

3

在mysql中使用UNIX_TIMESTAMP的方法如下:

SELECT * FROM `tbl_name` WHERE UNIX_TIMESTAMP(date) != 0

日期是您的列名...

这可能对您有所帮助...


1
在某些情况下,MySQL 将 0000-00-00 解释为 NULL 值。你能试着选择吗?
WHERE `date` IS NOT NULL

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接