在做機房收費系統的時候,上下機,我覺得是我在整個系統中遇到最棘手的問題了,現在就給大家,分享一下,我是怎樣解決的。
SQL中有3中資料型別是關於日期的,每一種的用法是不同的,當你用錯了,就會出現下面這樣的錯誤:
SQL的日期型別有以下幾種:
機房收費系統用到了date datetime2(n)以及time(n),就這樣的型別,我簡單地說一下,大致有了瞭解,就可以熟練運用了,首先,舉個列子,現在的時間是2013/9/15 21:32 ,
用date就是2013/9/15
用datetime2(0)就是2013/9/15 21:32:00
用time(0)那麼就是21:32:00
記住n的值就是小數點的位數,一般不用精準計算的,用不到這個。
現在具體分析一下機房收費系統,是要計算收費時間的,我認為最簡單的方法就是最有效的方法,不要將時間分開,直接就讓2個日期相減就對了。
上機記錄表(online)中是要修改的:
那麼現在我在其中新增一列這樣:
利用這組資料,問題就會迎難而解了。
程式碼如下:
txtsql = "select * from online_info where cardno='" & Mod_Card & "'" 'online表中刪除資料
Set mrc = ExecuteSQL(txtsql, msgtext)
If Not mrc.EOF Then
Ondate = mrc.Fields(9)
mrc.Delete
Else
MsgBox "online表中沒有這樣一天記錄", vbOKOnly + vbExclamation, "警告"
End If
If mrc.EOF = True Then
MsgBox "line表沒有資料可用", vbOKOnly + vbExclamation, "警告"
Else
Mod_ConsumeTime = DateDiff("n", Ondate, Now) '得到的時間
End If
這樣看再用datediff函式輕而易舉就可以解決隔天的時間問題。