簡體   English   中英

MySQL選擇表中的最后一天exsist

[英]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”以獲得更好的結果

這是一個SQL小提琴

試試這個:

SELECT MAX(date)
FROM yourTable
GROUP BY YEAR(date), MONTH(date)

@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`;

SQLFIDDLE DEMO

查詢僅獲取月份的最后日期:

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.

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