【发布时间】:2021-03-22 18:10:59
【问题描述】:
我需要从数据库中查询上个月的数据。所以我需要上个月的第一个和最后一个日期才能进行“介于”SQL 查询。
当然,第一次约会总是从 1 开始,但硬编码看起来很糟糕。此外,硬编码 日期格式 "dd-MM-yyyy" 似乎是一种不好的做法。 有没有更简单的方法来做到这一点?现在我有一些业余但工作的东西,就像这样:
YearMonth thisMonth = YearMonth.now();
YearMonth lastMonth = thisMonth.minusMonths(1);
String dd = Integer.toString(lastMonth.lengthOfMonth());
String mm = Integer.toString(lastMonth.getMonthValue());
String yyyy = Integer.toString(lastMonth.getYear());
String startDate = "01-" + mm + "-" + yyyy;
String endDate = dd + "-" + mm + "-" + yyyy;
System.out.println("startDate: " + startDate);
System.out.println("endDate: " + endDate);
【问题讨论】:
-
您可以直接在查询中进行计算。您正在运行哪个数据库(mysql、oracle、sql-server...?),您的查询是什么样的?
-
@GMB 我正在使用 oracle
标签: java sql oracle datetime where-clause