我试图从mysql获取数据,其中日期在月底。
例子:
MySQL选择月份的最后一天存在于表
id date name
===================
1 2002-02-23 aaaa
2 2002-02-23 bbbb
3 2002-03-01 cccc
正如你可以看到最后输入上月仅在由于各种原因,日期23。
有没有办法让我只能在数据库中选择月份的最后一个日期存在?
我试图从mysql获取数据,其中日期在月底。
例子:
MySQL选择月份的最后一天存在于表
id date name
===================
1 2002-02-23 aaaa
2 2002-02-23 bbbb
3 2002-03-01 cccc
正如你可以看到最后输入上月仅在由于各种原因,日期23。
有没有办法让我只能在数据库中选择月份的最后一个日期存在?
你需要year-month
采取self join
使用derived table
表通过分组记录:
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');
@Morgan尝试这种方式,我认为它会给你确切的结果。
SELECT * FROM table WHERE date in (select DISTINCT max(date) from table GROUP BY MONTH(date))
你是否得到了要求的结果? – mansoor
您可以选择从表中最后一个月的日期与此查询:
select max(`Date`) from t group by DATE_FORMAT(`Date`,'%Y%m')
尝试这样
SELECT * FROM my_table WHERE date in (select max(date) from my_table)
它会表现出最大的日期...在你的单词日期为月末。您可以添加“GROUPBy”以获得更好效果
这里是我的代码,在我的情况下
SELECT * FROM ProjectTimeSheet WHERE EndDate in (select DISTINCT max(EndDate) from
ProjectTimeSheet GROUP BY MONTH(EndDate))
在哪里我的表是“ProjectTimeSheet”,有一个名为结束日期字段工作正常。而这个查询完全按照你想要的方式进行检索。
所以如果是这样的话,根据你给定的记录是什么结果? –