【问题标题】:MySQL select last day of month exsist in tableMySQL选择表中存在月份的最后一天
【发布时间】:2012-08-22 16:36:54
【问题描述】:

我正在尝试从日期为月底的 mysql 获取数据。
示例:

id date       name
===================
1  2002-02-23 aaaa
2  2002-02-23 bbbb
3  2002-03-01 cccc

如您所见,由于各种原因,2 月的最后一次输入仅在 23 日。
有没有办法让我只能选择数据库中存在月的最后一个日期?

【问题讨论】:

  • 那么如果是这样的话,根据您给定的记录,结果是什么?

标签: mysql sql date select


【解决方案1】:

@Morgan 尝试这种方式,我认为它会给你准确的结果。

SELECT * FROM table WHERE date in (select DISTINCT max(date) from table GROUP BY MONTH(date ))

【讨论】:

    【解决方案2】:

    这样试试

    SELECT * FROM my_table WHERE date in (select max(date) from my_table)
    

    它将显示最大日期...用您的话来说,日期是在月底。您可以添加“GROUPBy”以获得更好的结果

    【讨论】:

      【解决方案3】:

      这是SQL Fiddle

      试试这个:

      SELECT MAX(date)
      FROM yourTable
      GROUP BY YEAR(date), MONTH(date)
      

      【讨论】:

        【解决方案4】:

        您需要使用derived tableself join 放在桌子上,方法是将记录与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`;
        

        SQLFIDDLE DEMO

        查询仅获取月份的最后日期:

        SELECT MAX(`date`) AS `date`
        FROM table_name
        GROUP BY DATE_FORMAT(`date`, '%Y%m');
        

        【讨论】:

          【解决方案5】:

          这是我的代码,在我的情况下可以正常工作

          SELECT * FROM ProjectTimeSheet WHERE EndDate in (select DISTINCT max(EndDate) from 
          ProjectTimeSheet GROUP BY MONTH(EndDate ))
          

          我的表是“ProjectTimeSheet”,其中有一个名为 EndDate 的字段。并且此查询完全按照您想要的方式检索。

          【讨论】:

            【解决方案6】:

            您可以使用此查询从表中选择上个月的日期:

            select max(`Date`) from t group by DATE_FORMAT(`Date`,'%Y%m')
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-05-03
              • 2017-10-29
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多