比如我有一個字段的表:得到所有月份的最後幾天在MySQL
id date
1 2001-01-01
2 2001-01-05
.................
N 2011-12-31
如何得到我所獲得的所有月份從該表中最後的日子? 例如:
如果我有像2001-05-31和2001-06-01 日期我只需要2001-05-31不能同時
比如我有一個字段的表:得到所有月份的最後幾天在MySQL
id date
1 2001-01-01
2 2001-01-05
.................
N 2011-12-31
如何得到我所獲得的所有月份從該表中最後的日子? 例如:
如果我有像2001-05-31和2001-06-01 日期我只需要2001-05-31不能同時
我找到了解決方案。但是這個查詢在大型表上非常慢。所以我仍在尋找更好的解決方案
select DISTINCT(LAST_DAY(date)) from table;
select max(date)
from table
group by year(date), month(date)
它將從最後一天的月份返回最大日值。如果我有像2001-05-31和2001-06-01的日期,我只需要第一個 – errx
select subdate(adddate(subdate(`date`, day(`date`) - 1), interval 1 month), 1)
注:這是 「硬辦法」。請參閱@ harper89的答案 - 更好:)
select max(date_format(date, '%d')) as last_day_of_the_month
from table
group by date_format(date, '%Y%m')
也許這會工作更好?
select DISTINCT(LAST_DAY(date)) from table GROUP BY date_format(date, '%Y%m')
SELECT id, date
FROM `table`
WHERE DATE(date) = LAST_DAY(date)
過場的日期功能是過濾器沒有時間,只使用,如果你有一個datetime列的日期。
查詢獲取所有行的日期=月份的最後一天。
本月的最後一天,比如30日,31日?或者您的表中當月的最新日期? – sealz