我当前的代码是..
SELECT DATEDIFF(DAY, Return_Date , Submit_Date )FROM Issue WHERE Book_ID = ?但是它显示了一个错误:“调用本机函数‘DATEDIFF’时的参数计数不正确”。
完整的代码是
Connection conn;
Connct readerconn = new Connct();
conn =readerconn.getConnection();
try{
String query = "SELECT DATEDIFF(Return_Date , Submit_Date) FROM issue WHERE Book_ID = ?" ;
Double diff=null;
PreparedStatement pstnt=conn.prepareStatement(query);
pstnt.setInt(1, Integer.parseInt( jTextField4.getText()));
try (ResultSet rs = pstnt.executeQuery( query ) ;) {
while ( rs.next ( ) ) {
diff = rs.getDouble( 1 ) ;
if(diff<=7){
Double fine=diff-7*10;
fine = Double.valueOf(jTextField1.getText());
}
else{
showMessageDialog(null,"No Fine");
}
}
} catch ( SQLException ex ) {
Logger.getLogger(ReturnNFines.class.getName()).log(Level.SEVERE, null, ex);
showMessageDialog(null,"Error");
}
} catch (SQLException ex) {
Logger.getLogger(ReturnNFines.class.getName()).log(Level.SEVERE, null, ex);
showMessageDialog(null, "Failed");
}我正在尝试从JText文件中获取id,并查找包含输入id的行的DateDiff,
发布于 2020-12-05 22:02:22
错误消息表明您正在使用MySQL/MariaDB。在这个数据库中,function datediff()只接受两个参数,这两个参数都是日期(或-)。
所以:
select datediff(return_date , submit_date) from issue where book_id = ?请注意,该函数实际上计算了两个参数之间存在多少天界限,如果参数有时间成分,可能是您所期望的,也可能不是;通常,DATEDIFF('2007-12-31 23:59:59','2007-12-30')为1。
如果您希望计算将24小时的间隔视为一天,则可以使用timestampdiff()和算术,如下所示:
timestampdiff(second, submit_date, return_date) / 60 / 60 / 24这为您提供了十进制天数形式的日期差异。
https://stackoverflow.com/questions/65157707
复制相似问题