我在月底运行查询时需要一些帮助。每个月的第一个工作日可能会有所不同,因此我可能只在某个月的第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))
但是,如果今天是星期一,那就不行了。
我很感激任何能给我最好的方法的答案
答案 0 :(得分:0)
您可以简单地从日期中减去几天甚至一个月,因为您实际从减法中获得的所有内容都是一个月
MONTH(DATE_SUB(CURDATE(),INTERVAL 5 DAY))
OR
MONTH(DATE_SUB(CURDATE(),INTERVAL 1 MONTH))