【发布时间】:2021-09-01 14:56:24
【问题描述】:
在我的其中一个 MySQL 表中有一列 cancelled_dts 是 DateTime 类型,它接受 null 值,默认设置为“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”。
【问题讨论】:
-
能否给出表定义,以及一些示例数据?
-
在
if条件下,您使用 strings 进行操作。所以它与空的 dates 无关。 -
CREATE TABLE
example_table( --cancelled_dtsdatetime DEFAULT '0000-00-00 00:00:00' COMMENT '取消日期和时间', -- ) ENGINE=InnoDB AUTO_INCREMENT=53233默认字符集=utf8 ; -
@BartFriederichs 上面添加的架构不能共享所有列