簡體   English   中英

MySQL-獲取當月第1天第4天的最新數據

[英]MySQL-Get latest data of 1st 4 days of current month

我的數據庫中有一個表,該表存儲每月1號的meters能量值。 如果儀表離線,它將存儲第二天的值。

下面是我的情況

我有2 FebruaryMarch過去兩個月的水表記錄。 February數據為2019-02-01 00:00:00March為4行。 見下圖

在此處輸入圖片說明

在上圖中1st,2nd and 3rd1st,2nd and 3rd日的FA值為空1st,2nd and 3rd月4日的FA值為零。

我做了什么?

我可以選擇具有FA值的行。

我想做的事?

  1. 我只想獲取當前月份的數據,即當前月份是March因此它應該僅獲得March記錄,然后下個月應該僅獲得April記錄,依此類推。
  2. 查詢的天數限制不得超過4,即,它僅應檢查每月第一天的前四天的記錄。

這是我的DB小提琴

任何幫助將不勝感激。

解決此問題的一種方法是FOR我想只獲取當前月份的數據,即當前月份為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

您可以在下面嘗試-

演示

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM