每月报告的MySQL日期

时间:2017-06-08 12:28:50

标签: mysql date

我在月底运行查询时需要一些帮助。每个月的第一个工作日可能会有所不同,因此我可能只在某个月的第3天上班。

我试图找出我的WHERE语句在当前月份选择数据的样子,除非它是: 一个月的第一天,它将需要选择上个月的所有内容 一个月的第一个工作日,可能是第三个工作日。然后还需要选择上个月的数据。

这是我目前正在玩的两个场景,目前还没有数据来测试它。

我考虑过做

public static void main(String[] args) throws InterruptedException {
    Thread t = new Thread(() -> {
        try {
            Thread.sleep(5000L);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    });
    System.out.println("Starting Server!");
    t.start();
    t.join();
    System.out.println("Server is done!");

}

但这也会从2016年返回数据。

我也想过做

WHERE
MONTH(action_date) = MONTH(DATE_SUB(CURDATE(),INTERVAL 1 DAY))

但是,如果今天是星期一,那就不行了。

我很感激任何能给我最好的方法的答案

1 个答案:

答案 0 :(得分:0)

您可以简单地从日期中减去几天甚至一个月,因为您实际从减法中获得的所有内容都是一个月

MONTH(DATE_SUB(CURDATE(),INTERVAL 5 DAY))

OR

MONTH(DATE_SUB(CURDATE(),INTERVAL 1 MONTH))