LeetCode:197. 上升的温度,这样写为什么不行

题目:编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 id 。

刚开始学,不明白这样写为什么不行,请教

# Write your MySQL query statement below
select W2.id from Weather as w1, Weather as W2 where W2.temperature>W1.temperature and W2.recordDate=W1.recordDate+1;

只通过了13个测试用例,报错的这个测试用例太长了,一时间看不出来是哪里有问题
有看到题解,日期比较是有专门的函数DATEDIFF()
但还是想知道这个为什么不行~

img

mysql里不能直接用加减法来计算日期,如下

img

想象一下,4月30号加1天,理论上应该是5月1日,但是sql中如果直接加1,会得出4月31号,而且结果还不是日期类型了。
因此需要使用date_add或者add_date之类函数来对日期进行加减。
另外,不清楚你题目mysql的版本,如果是8.0及以后的版本,更好的方式应该是使用开窗函数,这样就只需要对这个表查一次,无需查两次来自关联