类型隐式转换导致的?No,并不是
疑似类型隐式转换一例 有群友提了下面这样的问题 请教个隐式转换的问题:SELECT count(*) FROM test WHERE time >= 2019-05-17;time列是datetime类型,这条SQL的执行结果是相当于 where 1, 这个是什么原因呢? SQL执行有个warnings:Warning | 1292 | Incorrect datetime value: '1997' for column 'time' at row 从告警信息来看,是把 2019-05-17 做了数学减法运算,得到常量 1997, 再把常量1997转换为 datetime 类型,再跟time字段做比较。 但用函数 cast(1997 as datetime),也是同样的告警信息,但结果是 NULL 那么该SQL是否可以等价为:SELECT count(*) FROM test WHERE time >= NULL 这个SQL结果会是0,因为跟NULL值比较的结果是NULL。 虽然WHERE条件错写成一个算式,但执行时没有报错,只有一个告警信息, 感觉还是因为...