从JSP中的日期选择器传递日期以从数据库中选择记录

时间:2019-06-26 21:36:43

标签: html jsp datepicker

我正在创建一个JSP页面,以在两个日期范围之间从Oracle数据库中选择记录,并显示在HTML页面上。创建了一个JSP页面,并尝试通过datepicker传递日期不返回任何记录。 Oracle DB中的数据类型是日期

添加了Java解析功能,更改了日期选择器格式等,但是这些都不起作用。任何帮助表示赞赏。

我的代码如下

$( function() {
    $( "#datepicker" ).datepicker({ changeMonth: true, changeYear: true });
    $( "#datepicker" ).datepicker( "option", "dateFormat", "dd-mm-yy");                  

        java.text.DateFormat format = new java.text.SimpleDateFormat("dd-mm-yy");
        java.util.Date da = format.parse(from_date);
        String to_date=request.getParameter("to_date");
        java.text.DateFormat format1 = new java.text.SimpleDateFormat("dd-mm-yy");
        java.util.Date ta = format1.parse(to_date);
        java.text.DateFormat format = new java.text.SimpleDateFormat("dd-mm-yy");

        select * from table 1actual_start between '"+da+"' and '"+ta+"'");                

1 个答案:

答案 0 :(得分:0)

code snippet下面将以dd-mm-yyyy格式给您提供日期,然后您可以将其传递到jsp页并将其放在您的select查询中。

$('#d1 , #d2').datepicker({
    dateFormat: 'dd-mm-yy',
    changeMonth: true,
    changeYear: true
});
<link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/base/jquery-ui.css" rel="stylesheet" />
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script>
    
       Date1: <input type="text" name="ab" id="d1" />
        Date2: <input type="text" name="ab1" id="d2" />

然后在您的jsp页中执行以下操作:

    java.sql.Date d1=null;
  java.sql.Date d2=null;
    //getting date
    String ab=request.getParameter("ab");
     String ab1=request.getParameter("ab1");
    //putting date it in below format i.e:dd-MM-YYYY 
     SimpleDateFormat s1=new SimpleDateFormat("dd-MM-YYYY");
            try {
                java.util.Date date1=s1.parse(ab);
              //d1 will have your correct format date                
                d1=new java.sql.Date(date1.getTime());
            } catch (ParseException ex) {
                Logger.getLogger(YourClassname.class.getName()).log(Level.SEVERE, null, ex);
            }

            try {
                java.util.Date date2=s1.parse(ab1);
              //d2 will have your correct format date                
                d2=new java.sql.Date(date2.getTime());
            } catch (ParseException ex) {
                Logger.getLogger(YourClassname.class.getName()).log(Level.SEVERE, null, ex);
            }

         //pass d1 & d2 in your query 
         PreparedStatement ps = con.prepareStatement(" select * from table1 where actual_start between ? and ? ");

             ps.setDate(1,d1);
             ps.setDate(2,d2);
             ResultSet data =ps.executeQuery();
            while(data.next()){

           //do something
           }