[置頂] SQL日期型別

weixin_34119545發表於2013-09-16

在做機房收費系統的時候,上下機,我覺得是我在整個系統中遇到最棘手的問題了,現在就給大家,分享一下,我是怎樣解決的。

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函式輕而易舉就可以解決隔天的時間問題。

 

 


 

 

相關文章