2025-11-14 02:53:18
最近三天天气预报用mysql查的话,先把当前日期用now或者curdate拿过来,然后往后推三天用date_add或者date_sub。比如今天10月5号,三天后就是10月8号,这时候写where天气日期between curdate and date_add(curdate,interval 3 day)就行。近三十天的意思就是从今天开始算起三十天内所有日期,写between curdate and date_add(curdate,interval 30 day)。
为什么这样查呢?因为mysql里的date_add函数专门用来推算日期,假设今天确实是10月5号,那三天后就是10月8号,这时候用between把5号到8号包含进去。而三十天后就是11月4号,这时候用between把5号到11月4号都算进去。比如查过去三十天数据,可能用date_sub(curdate,interval 30 day)到今天。不过天气预报一般用未来日期,所以都是加区间。比如有人写成where日期>=curdate and日期<=date_add(curdate,interval 30 day),这样就能抓取包括今天在内的三十天数据。实际测试过,当当前日期是2023-10-05时,date_add推30天正好到2023-11-04,中间不会少一天。所以用between加上这两个日期就能精准覆盖三十天范围。
本题链接: