2016-08-11 40 views
0

我在我的SQLServer中有下面的查詢。如何在JDBC中運行查詢

update time_tracker 
set logout = '08-11-2016 17:28:02', totaltime = DATEDIFF(minute,login, logout) 
from Time_Tracker 
where userid = 0138039 AND CONVERT(Date, LOGIN) = CONVERT(Date, GETDATE()) 

而在我的JDBC我正在下面的查詢

Date endDate = new Date(); 
    DateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss"); 
    String logoutTime = dateFormat.format(endDate); 
    System.out.println(logoutTime); 

    String sql = 
     "update time_tracker " + 
     "set logout = ?, totaltime = DATEDIFF(minute,login, logout) " + 
     "from Time_Tracker " + 
     "where userid= ? AND CONVERT(Date, LOGIN) = CONVERT(Date, GETDATE())"; 

    preparedStatement = conn.prepareStatement(sql); 
    preparedStatement.setString(1, logoutTime); 
    preparedStatement.setString(2, userId); 
    preparedStatement.execute(); 
    preparedStatement.close(); 

當我運行這個程序,也沒有在我的後端進行更新,但是,當我直視着我的SQL運行查詢服務器,它工作正常。請讓我知道我在哪裏錯了,我該如何解決它。

感謝

+1

你有沒有提交你的連接?如果自動提交不是,那麼這可能是一個原因。 –

+1

你是如何處理交易的?你是否明確地進行提交,或者你是否啓用了自動提交? – Jesper

+0

註銷的類型是什麼? –

回答

1

我覺得你可以改變如下: 在PreparedStatement.executeUpdate();

+0

感謝朋友,這工作:) – user3872094

+0

歡迎你的朋友 – PONRAJ