[置顶] SQL日期类型

在做机房收费系统的时候,上下机,我觉得是我在整个系统中遇到最棘手的问题了,现在就给大家,分享一下,我是怎样解决的。

SQL中有3中数据类型是关于日期的,每一种的用法是不同的,当你用错了,就会出现下面这样的错误:

[置顶] SQL日期类型_第1张图片

SQL的日期类型有以下几种:

[置顶] SQL日期类型_第2张图片

机房收费系统用到了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函数轻而易举就可以解决隔天的时间问题。

 

 


 

你可能感兴趣的:(sql,数据库)