【发布时间】:2017-11-28 14:31:03
【问题描述】:
所以我在 MS SQL Server 上使用 DATEDIFF 函数进行此查询?
SELECT DATEDIFF(DAY,(select StartDate from CarOrder where OrderID= 59),(select EndDate from CarOrder where OrderID= 59))
这工作正常,结果为 10,但我不知道如何获取返回值并将其用于 java 的此函数中
public int getDateDiff(int OrderID){
Connection conn = DBConnection.getConnection();
int datediff;
String getdiffSQL = "SELECT DATEDIFF(DAY,(select StartDate from CarOrder where OrderID = ? ) ,(select EndDate from CarOrder where OrderID= ?) )";
try {
PreparedStatement pstm = conn.prepareStatement(getdiffSQL);
pstm.setInt(1, OrderID);
pstm.setInt(2, OrderID);
int nRows = pstm.executeUpdate();
return nRows;
} catch (SQLException ex) {
System.out.println("Error: " + ex.getMessage());
} finally {
DBConnection.closeConnection(conn);
}
}
我希望它返回日期差异编号,以便它是我可以在 java 中使用的变量,我该怎么做? 谢谢。
【问题讨论】:
-
你能澄清一下你上面的代码有什么问题吗?
-
没有任何问题,我只需要从 datediff 获取返回值,并将其变成我可以在 java 中使用的变量。
-
与您的问题无关,但查询会更好
SELECT DATEDIFF(DAY,StartDate,EndDate) FROM CarOrder WHERE OrderID = ? -
当您的 SQL 不代表更新时,您为什么要调用
executeUpdate?我认为这是问题的核心......
标签: java sql-server return datediff