[英]MySQL select last day of month exsist in table
我正在嘗試從mysql獲取數據,其中日期是月末。
例:
id date name
===================
1 2002-02-23 aaaa
2 2002-02-23 bbbb
3 2002-03-01 cccc
正如你所看到的,由於各種原因,2月份的最后一個輸入僅在23日。
有沒有辦法讓我只能選擇數據庫中存在的月份的最后日期?
試試這樣吧
SELECT * FROM my_table WHERE date in (select max(date) from my_table)
它將顯示最大日期...在您的文字中日期是月末。您可以添加“GROUPBy”以獲得更好的結果
@Morgan嘗試這種方式我認為它會給你准確的結果。
SELECT * FROM table WHERE date in (select DISTINCT max(date) from table GROUP BY MONTH(date ))
您需要使用derived table
在表上進行self join
,方法derived table
將記錄與year-month
分組:
SELECT a.*
FROM table_name a
INNER JOIN (
SELECT MAX(`date`) AS `date`
FROM table_name
GROUP BY DATE_FORMAT(`date`, '%Y%m')
) b
ON a.`date` = b.`date`;
查詢僅獲取月份的最后日期:
SELECT MAX(`date`) AS `date`
FROM table_name
GROUP BY DATE_FORMAT(`date`, '%Y%m');
這是我的代碼在我的情況下工作正常
SELECT * FROM ProjectTimeSheet WHERE EndDate in (select DISTINCT max(EndDate) from
ProjectTimeSheet GROUP BY MONTH(EndDate ))
我的表是“ProjectTimeSheet”,其中有一個名為EndDate的字段。 此查詢將以您希望的方式檢索。
您可以使用此查詢從表中選擇上個月的日期:
select max(`Date`) from t group by DATE_FORMAT(`Date`,'%Y%m')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.