首页 > 解决方案 > mysql为空日期时间列返回0000-00-00 00:00:00

问题描述

在我的一个 MySQL 表中,有一列 cancelled_dts 是 DateTime 类型,它接受空值,默认设置为“0000-00-00 00:00:00”

当我执行这样的查询“SELECT * FROM tablename where cancelled_dts IS NULL”时,它返回包含“0000-00-00 00:00:00”的行

我尝试在同一个数据库上使用以下查询

select if('0000-00-00 00:00:00' != '0000-00-00 00:00:00', 'Not Same', 'Same'),
if('0000-00-00 00:00:00' IS NULL, 'NULL', 'NOT NULL'),
if('0000-00-00 00:00:00' IS NOT NULL, 'NOT NULL', 'NULL')

检查行为,它给出的输出为“Same”、“NOT NULL”和“NOT NULL”。

标签: mysqldatetime

解决方案


'0000-00-00 00:00:00'在 mysql 中是无效的 DateTime 值, DateTime.MinValue0001-01-01 00:00:00,但列的最小支持值DATETIME1000-01-01 00:00:00在 MySQL 服务器的许多版本中


推荐阅读