Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在sql中查找上个月的最后一天数据_Java_Mysql - Fatal编程技术网

Java 在sql中查找上个月的最后一天数据

Java 在sql中查找上个月的最后一天数据,java,mysql,Java,Mysql,如何查找上个月最后一天的数据 将日期与以下日期进行比较:其中。。。获取上个月最后一天的日期 select amount, Temperature, Density from sheet where Code=? and product=? and date < ? order by date desc limit 1 然后将last_date作为查询字符串日期参数 String sql=“选择金额,\n”+ 温度,\n+ “密度\n”+ “从工作表\n”+ “其中代码=?和产品=?以及日

如何查找上个月最后一天的数据


  • 将日期与以下日期进行比较:
    其中。。。获取上个月最后一天的日期

    select amount, Temperature, Density from sheet where Code=? and product=? and date < ? order by date desc limit 1
    
    然后将last_date作为查询字符串日期参数

    String sql=“选择金额,\n”+ 温度,\n+ “密度\n”+ “从工作表\n”+ “其中代码=?和产品=?以及日期=?”

    int year=2012年; 整月=1; 整日=0; 校准设置(年、月、日)
    Date-Date=cal.getTime()

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

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

        SELECT DATE_SUB( CURDATE( ) , INTERVAL DAYOFMONTH( CURDATE( ) ) 
    DAY ) AS  'last_date'
    FROM dual
    
    这将返回日期范围之间的最大日期

    然后


    我很清楚,使用聚合函数而不使用
    分组依据是不道德的,但它在这种情况下是有效的。

    String sql=“选择数量”\n“+”温度、\n“+”密度\n“+”来自表\n”+“其中代码=?和产品=?和日(日期)=?和月(日期)=和年(日期)=”和设置参数

    您想设置上月最后一天的参数,对吗?是的,我需要从SQLS中查找上月最后一天的数据您是指上月最后一天的确切日期,还是仅指上个月最后一天的数据?上个月最后一天的数据Hokay,请参见我的答案,这应该适用于您。我认为最大的“开放”部分是计算当月第一天的第一秒。但你应该可以很容易地独自解决这个问题;)那么我应该在这里放置什么stmt.setDate(3,3)@Adrian严格地说,您应该检查日期是否也在上个月的开始之后-该月可能根本没有任何记录。@user1699623下个月的第一秒,例如,如果您想在其中设置7月而不是8月1日的第一秒。@Alnitak是的,您是对的,但很简单,可以单独计算出来,如果真的需要,我通过cal.set(年、月、日)获得错误;这将不起作用,因为你仍然需要匹配时、分、秒。。数据库中的日期和您提供用于比较的日期。使用此字符串sql=“选择数量,\n”+“温度”\n”+“密度”\n”+“从表\n”+“其中代码=?和产品=?和日期(日期)=?和月份(日期)=和年份(日期)=”设定parameters@nagarajub您应该将此作为单独的答案添加。谢谢,这很有用,但如何使用dataCalendar cal=Calendar.getInstance()查找上个月的最后一天;国际年=2012年;整月=1;整日=0;校准设置(年、月、日);day=cal.get(日历日期);第31天
        SELECT DATE_SUB( CURDATE( ) , INTERVAL DAYOFMONTH( CURDATE( ) ) 
    DAY ) AS  'last_date'
    FROM dual
    
    select max(date) from sheet where date between ? and ? 
    
    select * from sheet where date=(select max(date) from sheet where date between ? and ?);