在jdbc中的数据库中的两个日期之间显示数据,其中日期的数据类型是date [英] Displaying data's in between two dates from the database in jdbc where the data type of date is date

查看:71
本文介绍了在jdbc中的数据库中的两个日期之间显示数据,其中日期的数据类型是date的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

try {

    ps = connection.prepareStatement("SELECT * FROM project.order WHERE PO_Date >="+startDate+" AND PO_Date <= "+endDate+"");
    System.out.println("value of ps "+ps);

    ResultSet rs = ps.executeQuery();
    System.out.println("value of rs "+rs);
    while (rs.next()) {
        System.out.println("value of while loop "+rs.next());
        ArrayList<String> arrlist = new ArrayList<String>();

        System.out.println(rs.getInt(1));
        System.out.println(rs.getDate(2));
        System.out.println(rs.getString(4));
        System.out.println(rs.getString(5));
        System.out.println(rs.getString(6));

        System.out.println("******************");

        Iterator<String> itr = arrlist.iterator();
        while (itr.hasNext()) {
            System.out.println(itr.next());

        }
    rs.close();
} 
    }catch (Exception e) {
    System.out.println(e.getMessage());
}
return id;





< b>我尝试了什么:



也尝试了这个但是问题是它没有比较整个日期格式
$ b转换为日期格式后$ b不执行查询。请帮助我解决问题



public int getdata(String startDate,String endDate){

PreparedStatement ps;

int id = 0;

尝试{

/ *

* SimpleDateFormat formatter = new SimpleDateFormat(dd / MM / yyyy);

* java.util.Date startDat = formatter.parse(startDate);

* java .util.Date endDat = formatter.parse(endDate);

* /

// ps = connection.prepareStatement(select * from project.order Where PO_Date Between + startDate +'AND'+ endDate +');

// ps = connection.prepareStatement(select * from project.order在哪里PO_Date? AND DATE_ADD(?,INTERVAL 1 DAY));

// ps = connection.prepareStatement(SELECT * FROM project.order WHERE PO_Date介于?AND?);

ps = connection.prepareStatement(SELECT * FROM project.order WHERE PO_Date> =?AND PO_Date< =?);

// ps = connection.prepareStatement(SELECT * FROM project.order WHERE PO_Date(now())> =?AND PO_Date(now())< =?);

/ *

* ps.setDate (1,new java.sql.Date(startDate)); ps.setDate(2,new

* java.sql.Date(endDate.getTime()));

* /

ps.setString(1,startDate);

ps.setString(2,endDate);



ResultSet rs = ps.executeQuery();

// System.out.println(rs of rs+ rs);



while(rs.next()){

ArrayList< string> arrlist = new ArrayList< string>();

System.out.pr intln(rs.getString(2));

System.out.println(rs.getInt(1));

System.out.println(rs.getString( 4));

System.out.println(rs.getString(5));

System.out.println(rs.getString(6));

System.out.println(***************);

// System.out.print(rs.getDate (endDate));

Iterator< string> itr = arrlist.iterator();

while(itr.hasNext()){

System.out.println(itr.next());

}

}

rs.close();



} catch(例外e) {

System.out.println(e.getMessage());

}

返回id;

}

}



What I have tried:

And also tried this too but the problem is it is not comparing the whole date format
after converting to date format it is not executing the query..please help me to solve the problem

public int getdata(String startDate, String endDate) {
PreparedStatement ps;
int id = 0;
try {
/*
* SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
* java.util.Date startDat = formatter.parse(startDate);
* java.util.Date endDat = formatter.parse(endDate);
*/
// ps = connection.prepareStatement("select * from project.order Where PO_Date Between " + startDate + "' AND '" + endDate + "'");
//ps = connection.prepareStatement("select * from project.order where PO_Date between ? AND DATE_ADD( ?, INTERVAL 1 DAY) ");
//ps = connection.prepareStatement("SELECT * FROM project.order WHERE PO_Date between ? AND ?");
ps = connection.prepareStatement("SELECT * FROM project.order WHERE PO_Date >= ? AND PO_Date <= ?");
//ps = connection.prepareStatement("SELECT * FROM project.order WHERE PO_Date(now())>= ? AND PO_Date(now())<=?");
/*
* ps.setDate(1, new java.sql.Date(startDate)); ps.setDate(2, new
* java.sql.Date(endDate.getTime()));
*/
ps.setString(1, startDate);
ps.setString(2, endDate);

ResultSet rs = ps.executeQuery();
// System.out.println("value of rs "+rs);

while (rs.next()) {
ArrayList<string> arrlist = new ArrayList<string>();
System.out.println(rs.getString(2));
System.out.println(rs.getInt(1));
System.out.println(rs.getString(4));
System.out.println(rs.getString(5));
System.out.println(rs.getString(6));
System.out.println("***************");
// System.out.print(rs.getDate("endDate"));
Iterator<string> itr = arrlist.iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
}
rs.close();

} catch (Exception e) {
System.out.println(e.getMessage());
}
return id;
}
}

推荐答案

试试这个,希望它可以解决你的问题,并帮助你追踪你的错误。

try this, hope it would solve your problem and help you to trace your error.
try {
        Date start_date= df.parse(startDate);
        Date end_date= df.format(endDate);
        ps = connection.prepareStatement("SELECT * FROM project.order WHERE PO_Date >="+start_date+" AND PO_Date <= "+end_date+"");
    System.out.println("value of ps "+ps);
    } catch (ParseException e) {
        e.printStackTrace();
    }


这篇关于在jdbc中的数据库中的两个日期之间显示数据,其中日期的数据类型是date的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆