我有包含(登錄和註銷)時間和日期的userTransact表,現在我使用這些代碼進行持續時間計算,但問題是它使得日期也使我無效日期如下:
登錄2016年12月22日08:28:27.540
註銷2016年12月22日08:28:32.947
持續時間1900-01-01 00:00:05.407
如何解決這個問題?
該計算的代碼在事件的FormClosing爲:如何獲得從兩次減去的持續時間
SqlCommand cmd3 = new SqlCommand("insert into empTransLogin(empLogTransNo,empId,logTimeIn,logTimeOut,duration) VALUES (@logTrans,@id,@login,@logout,@duration)", cn);
cmd3.Parameters.AddWithValue("@logTrans", x);
cmd3.Parameters.AddWithValue("@id", deleteById);
cmd3.Parameters.AddWithValue("@login", loginDateTime);
cmd3.Parameters.AddWithValue("@logout", DateTime.Now);
TimeSpan duration = DateTime.Now - loginDateTime;
cmd3.Parameters.AddWithValue("@duration", duration);
cmd3.ExecuteNonQuery();
SqlCommand cmd2 = new SqlCommand("delete from empLogin where empId=" + deleteById + "", cn);
cmd2.ExecuteNonQuery();
Application.Exit();
應該怎麼看'duration'?當你做'logout-login'時,你會從這裏得到'TimeSpan',你可以在幾秒鐘內獲得持續時間,抽動或者你想要的東西 –
請不要使用'AddWithValue'。這可能會造成問題:[最佳實踐 - 執行Sql語句](http://stackoverflow.com/documentation/.net/3589/ado-net/14261/best-practices-executing-sql-statements)。 –
@M.Wiśnicki持續時間應該是完整日期,然後是全部時間,這裏時間是正確的,但日期不是。如果用戶在同一天登錄並註銷,它應該是同一日期。 –