我正在尝试从日期在月底的 mysql 获取数据。
例子:
id date name
===================
1 2002-02-23 aaaa
2 2002-02-23 bbbb
3 2002-03-01 cccc
如您所见,由于各种原因,2 月的最后一次输入仅在 23 日。
有没有办法让我只能选择数据库中存在的最后一个月的日期?
@Morgan 尝试这种方式,我认为它会给你准确的结果。
SELECT * FROM table
WHERE date in
(select DISTINCT max(date) from table
GROUP BY MONTH(date ))
像这样试试
SELECT * FROM my_table WHERE date in (select max(date) from my_table)
它将显示最大日期...用您的话来说,日期是在月底。您可以添加“GROUPBy”以获得更好的结果
您需要通过将记录分组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`;
查询仅获取月份的最后日期:
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')