我想知道我是否在访问的vb部分正确使用日期/时间字段。 我有一个约会时间字段,例如2016年4月14日。 如果持续时间为“秒”的“Dauer”> 6个小时后会发生其他事情。
Datum和Dauer是通过表中的sql语句(select)直接分配的变量。然后我使用它们(DAtum的类型为Date / Time,Dauer的类型为int)。
If (Datum >= "16.07.2015" And Dauer > (6 * 60 * 60)) Then ' 6 Stunden
如上所述,我的情况是2016年4月14日,持续时间> 6小时(例如6.19)。但不知怎的,我仍然最终在if的其他部分,所以我猜我要么是对“Datum”变量做错了,要么我在assignement和if之间有问题(虽然我什么也看不见)
因此我的问题是我是否正确检查日期/时间字段?因此,只有> = 2015年7月16日,检查Dauer是否超过6小时?
答案 0 :(得分:0)
最好使用CDate()
或DateSerial()
将比较值显式转换为DateTime值。
对于CDate()
,字符串应采用美国格式(mm / dd / yyyy)或ISO格式(yyyy-mm-dd)。
If Datum >= CDate("2015-07-16")
如果您的比较日期也是可变的,那么 DateSerial()
是最好的,但也可以与常数一起使用。
If Datum >= DateSerial(2015, 7, 16)
答案 1 :(得分:0)
首先,您应该提供要与数据类型Date:
的变量或常量进行比较的值Dim CheckDatum As Date
Dim CheckDauer As Date
CheckDatum = DateSerial(2015, 7, 16)
CheckDauer = TimeSerial(6, 0, 0)
' or:
Const CheckDatum As Date = #07/16/2015#
Const CheckDauer As Date = #06:00:00#
然后
If Datum >= CheckDatum And Dauer > CheckDatum Then
' or:
If DateDiff("d", CheckDatum, Datum) >= 0 And DateDiff("s", CheckDauer, Dauer) > 0 Then