java.sql.SQLException: ORA-01830: date format picture ends before converting entire input string

2.8k Views Asked by At

I am tring to select all values from the database between two different timestamp

<form action="index.jsp" METHOD="POST" >
    <table border="2" style="border-collapse: collapse;">
      <tr>
        <td>SELECT THE  TO DATE</td><td><input name="dt" type="text" id="datepicker" readonly="readonly" size="20"/></td>
        <td >SELECT FROM DATE </td><td><input name="dt1" type="text" id="datepicker2" readonly="readonly" size="20"/></td>
      </tr>
      <tr><td colspan="4"><input type="submit" value="SAVE"><td></tr>
    </table>
</form>

This is second page where i am retriving the value.

       String Date1=request.getParameter("dt");
       SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy"); 
       java.util.Date date = sdf.parse(Date1);
       java.sql.Timestamp sqlStartDate = new java.sql.Timestamp(date.getTime());//2015-04-26 00:00:00.0

       String Date2=request.getParameter("dt1");
       java.util.Date date1=sdf.parse(Date2);
       java.sql.Timestamp sqlEndDate = new   java.sql.Timestamp(date1.getTime());//2015-06-26 00:00:00.0

       Class.forName("oracle.jdbc.driver.OracleDriver");
       Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:xe", "RCC", "RCC@123");

       PreparedStatement pst=con.prepareStatement("Select * from TBLTENDERS where TSTATUSDATE between (TO_TIMESTAMP(?,'dd-mm-yyyy')) and (TO_TIMESTAMP(?,'dd-mm-yyyy'))");
       pst.setTimestamp(1, sqlStartDate); 
       pst.setTimestamp(2,sqlEndDate);
       ResultSet rest=pst.executeQuery();

I am getting error in the query saying "java.sql.SQLException: ORA-01830: date format picture ends before converting entire input string". so can anyone help me with the query.

1

There are 1 best solutions below

0
On BEST ANSWER

Remove to_timestamp from your query, because your parameter is allready a timestamp:

  PreparedStatement pst=con.prepareStatement("Select * from TBLTENDERS where TSTATUSDATE between ? and ?");