0
String sql= "select amount,\n"+ "Temperature,\n"+ "Density\n"+
    "from sheet\n"+ "where Code=? and product=? and and month(date)=? && year(date)=? ";

PreparedStatement stmt=DBConnectionDATABASE.prepareStatement(sql);

try {
    stmt.setString(1, get.Code());
    stmt.setString(2, get.Product());
    stmt.setInt(3, get.month());
    stmt.setInt(4, get.Year());

如何使用数据找到上个月的最后一天。

4

5 回答 5

1
  1. 比较日期与更少:where ... date<?
  2. 将参数设置为下个月的月初,可以根据得到的月份和年份来计算,见Calendar
  3. 按日期降序对查询进行排序:where ... order by date desc
  4. 如果您真的只想要最后一个条目而不是限制查询:where ... order by ... limit 1

整个查询可能如下所示:

select amount, Temperature, Density from sheet where Code=? and product=? and date < ? order by date desc limit 1
于 2012-12-17T09:05:12.177 回答
1

String sql= "select amount,\n"+ "Temperature,\n"+ "Density\n"+ "from sheet\n"+ "where Code=? and product=? and day(date)=? and month( date)=? && year(date) =?" 并设置参数

于 2012-12-17T10:12:14.627 回答
0

获取上个月的最后一天

    SELECT DATE_SUB( CURDATE( ) , INTERVAL DAYOFMONTH( CURDATE( ) ) 
DAY ) AS  'last_date'
FROM dual

然后 last_date 作为您的查询字符串日期参数

String sql= "select amount,\n"+ "Temperature,\n"+ "Density\n"+ "from sheet\n"+ "where Code=? and product=? and date=?";

于 2012-12-17T09:12:55.573 回答
0

整数年 = 2012;整数月 = 1;整数天 = 0;cal.set(年、月、日);
日期日期 = cal.getTime();

将此日期设置为您的查询,这将给出 2012 年 1 月 31 日

如果你给month = 2,它将给出2012年2月29日,依此类推

于 2012-12-17T09:13:54.967 回答
0

使用这个查询

select max(date) from sheet where date between ? and ? 

这将返回日期范围之间的最大日期

然后

select * from sheet where date=(select max(date) from sheet where date between ? and ?);

我很清楚使用聚合函数是不道德的,group by但在这种情况下它是有效的。

于 2012-12-17T09:23:48.817 回答