我的数据库中有一个表,其中存储着meters
每月1号能量值。如果仪表离线,它将存储第二天的值。
下面是我的情况
我有过去两个月February
和March
的仪表记录。 February
的数据为2019-02-01 00:00:00
,但月份March
有4行。见下图
在上图中,3月的1st,2nd and 3rd
的值为FA
,但3月4日的值却有些空。
我做了什么?
我能够选择值为FA
的行。
我想做什么?
March
,因此它应该仅获取行军记录,然后下个月则仅获取April
记录,依此类推。这是我的DB-Fiddle
任何帮助将不胜感激。
答案 0 :(得分:1)
解决这个问题的一种方法是 对于 我只想获取当前月份的数据,即当前月份是3月,因此它应该仅获得3月记录,然后下个月应该仅获得4月记录,依此类推。
means month(TV)= month(now())
和
查询的天数不得超过4天,即每个月的前四天只应检查记录。 means day(TV)<= 4
最后是您的查询
select * from `biz_pub_data_f_energy_m` a
where a.`DATA_ID` = '1b9716122dd5408691a063227316ac0a'
and a.`FA` is NOT NULL and month(TV)= month(now())
and day(TV)<= 4
答案 1 :(得分:1)
您可以在下面尝试-
select * from `biz_pub_data_f_energy_m` a
where a.`DATA_ID` = '1b9716122dd5408691a063227316ac0a'
and a.`FA` is NOT NULL and tv>=date(DATE_SUB(now(),INTERVAL DAYOFMONTH(now())-1 DAY))
and tv<=DATE_ADD(date(DATE_SUB(now(),INTERVAL DAYOFMONTH(now())-1 DAY)), INTERVAL 4 DAY)