值java.sql.SQLException:ORA-01830:转换整个输入串

问题描述:

我特林两个不同的时间戳之间从数据库中选择所有的值之前的日期格式图象结束值java.sql.SQLException:ORA-01830:转换整个输入串

<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> 

这是我在哪里第二页重新获得价值。

 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", "[email protected]"); 

     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(); 

我收到错误的查询说:“值java.sql.SQLException:ORA-01830:转换整个输入字符串之前的日期格式的图片结束”。所以任何人都可以帮助我查询。从查询

+0

您的参数已经是一个时间戳。为什么你试图再次转换? – Jens

+0

@Jens谢谢你的工作 – User

删除TO_TIMESTAMP,因为你的参数是媒体链接时间戳:

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