我正在尝试从mysql获取数据,其中日期是月末
例如:
id date name
===================
1 2002-02-23 aaaa
2 2002-02-23 bbbb
3 2002-03-01 cccc
正如您所看到的,由于各种原因,2月份的最后一个输入仅在第23天 有没有办法让我只能选择数据库中已存在的最后一个月?
答案 0 :(得分:3)
试试这个
SELECT * FROM my_table WHERE date in (select max(date) from my_table)
它会显示最长日期...在您的文字日期是月末。您可以添加“GROUPBy”以获得更好的结果
答案 1 :(得分:2)
答案 2 :(得分:2)
SELECT * FROM table
WHERE date in
(select DISTINCT max(date) from table
GROUP BY MONTH(date ))
答案 3 :(得分:0)
您需要使用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');
答案 4 :(得分:0)
这是我的代码在我的情况下正常工作
SELECT * FROM ProjectTimeSheet WHERE EndDate in (select DISTINCT max(EndDate) from
ProjectTimeSheet GROUP BY MONTH(EndDate ))
我的表是“ProjectTimeSheet”,其中有一个名为EndDate的字段。此查询将以您希望的方式检索。
答案 5 :(得分:-2)
您可以使用此查询从表格中选择上个月的日期:
select max(`Date`) from t group by DATE_FORMAT(`Date`,'%Y%m')