mysql - 根据年份的最后一天选择记录

标签 mysql sql maxdate

我的表格有 26 列,其中前 3 列是日、月、年。其余的专栏有一些我必须展示的信息。现在我必须根据年份的最后一天获取记录。 我尝试过编写代码。

select * from subscription_stats where year * 10000 + month * 100 + day = LAST_DAY(CONCAT(year,'-',month,'-',day))

但这将从每个月的最后一天获取记录,并且我想要几年的最后一天。而且,当我在记录中没有实际的最后一天时,此代码将不起作用。因此,我想要一些功能,例如该月的最大日期,而不是 LAST_DAY。我怎样才能实现这个功能。

最佳答案

这是你想要的吗?

select *
from subscription_stats
where month = 12 and day = 31;

这会返回 12 月 31 日的行。

如果您没有所有日期的记录,并且您想要数据中的最后一天:

select ss.*
from subscription_stats ss
where (ss.month, ss.day) = (select ss2.month, ss2.day
                            subscription_stats ss2
                            where ss2.year = ss.year
                            order by ss2.month desc, ss2.day desc
                           );

关于mysql - 根据年份的最后一天选择记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44483908/

相关文章:

sql - 按行号更新行

mysql - 获取连接上唯一小部件的计数

mysql - 左加入 MAX(DATE)

php - 用于 PHP 图书搜索的数据库,如何根据图书存储多个不同数量的作者

MySQL 触发器使用 : if column is null set other column null

Jquery UI Datepicker 向 minDate 和 maxDate 添加月份

mysql - 在 mysql 中不使用 count() 查找行数

PHP MySQL 双 While 循环给我带来问题

mysql - 避免对分页嵌套集进行全表扫描