Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MySQL Get last date in each month from column of dates

Tags:

date

sql

mysql

An example is shown below; imagine each commar separated date is a row in the database

Input: - 2010-01-11, 2010-01-18, 2010-01-25, 2010-02-01, 2010-02-08, 2010-02-15, 2010-02-22, 2010-03-01 it should return

Ouput: 2010-01-25, 2010-02-22, 2010-03-01

The output is derived by getting the last date in the month, note for March there is only one date in the database so we use that value.

I would appreciate it if someone could post some pseudo-SQL about how to approach this problem. Note, I am using My-SQL so those date functions are available.

Cheers,

like image 755
Tarski Avatar asked Dec 23 '22 05:12

Tarski


2 Answers

SELECT MAX(datecol) FROM sometable
GROUP BY YEAR(datecol), MONTH(datecol);

The group by clause is by year and month so it will handle dates that break over a year.

like image 192
BenM Avatar answered Feb 02 '23 00:02

BenM


SELECT max(date_field) FROM date_table GROUP BY YEAR(date_field), MONTH(date_field) ORDER BY date_field ASC;
like image 36
vicatcu Avatar answered Feb 02 '23 00:02

vicatcu