首页 > 解决方案 > SQL 查询获取最新的非空值,CURDATE()+2 不再工作

问题描述

所以我有一个名为“gas_market_prices”的 MYSQL 表,我在其中提取了一个名为“dwgm_d2_provisional_price”的列。现在,在连接的 grafana 仪表板上,我将此列称为,因为我提取了最新的“dwgm_d2_provisional_price”,如附图所示,它总是比当天提前 2 天。

数据库布局

所以以前,我使用以下查询来获取这个最近的价格,即使表仍在更新,这个查询突然停止工作。

SELECT gas_date as 'time', dwgm_d2_provisional_price
from gas_market_prices 
where gas_date = curdate()+1
order by gas_date desc limit 1

如何修改此脚本,以便从 dwgm_d2_provisional_price 获得 5.89,如上图所示。

标签: mysqlsql

解决方案


从您的查询看来,您需要使用当前数据添加两天而不是一天。

SELECT gas_date as 'time', dwgm_d2_provisional_price
from gas_market_prices 
where gas_date = DATE_ADD(curdate(), INTERVAL 2 DAY)
order by gas_date desc limit 1;

推荐阅读