我已经看到了几个与我的问题相似的标题,但他们专注于不同的观点.
我想问的是,
我想比较2个日期.是的,听起来很简单!
这是问题:
我有两个变量,我试图将这两个变量与Now()进行比较.
就像 :
If startDate < Now() and endDate> Now() Then
do something....
End If
Run Code Online (Sandbox Code Playgroud)
但问题是,当我将startDate(即'2013-08-08 09:30 AM')与Now()和endDate(即'2013-09-09 02:30 PM')与Now()进行比较时
startDate = '2013-08-08 09:30 AM' 'This value comes from db, I have not typed it. Just trying to show what it has as a value.
endDate = '2013-09-09 02:30 PM' 'This value comes from db, I have not typed it. Just trying to show what it has as a value.
Run Code Online (Sandbox Code Playgroud)
当我比较这两个日期变量时:
If startDate < Now() Then
do something....
End If
Run Code Online (Sandbox Code Playgroud)
它返回:FALSE.它应该返回TRUE,不是吗?
If startDate > Now() Then
do something....
End If
Run Code Online (Sandbox Code Playgroud)
它返回:TRUE.它应该返回FALSE,不是吗?
If endDate < Now() Then
do something....
End If
Run Code Online (Sandbox Code Playgroud)
但在这里,它返回正确.我的意思是这返回FALSE,它应该返回.
那太奇怪了.我检查了所有这些变量的值及其比较结果.价值观看起来很好,没什么好看的.但是当我比较startDate和Now()时,为什么startDate的行为就像它的greaather而不是Now()我无法得到它.
我试过了 :
If FormatDateTime(startDate) < FormatDateTime(Now()) Then do something
If FormatDateTime(CDate(startDate)) < FormatDateTime(CDate(Now())) Then do something
If DateValue(startDate) < DateValue(Now()) Then do something
Run Code Online (Sandbox Code Playgroud)
还尝试了上面的一些嵌套paranthesis.但没有运气.
他们都没有工作.
这个问题在最近几个小时就蚕食了我的大脑.
希望它清楚地解释.
寻找建议,
提前致谢!
编辑:现在()是2013-09-05 12:30 PM
尝试使用DateDiff()函数.这将返回您想要的任何间隔(秒,分钟,天等)的差异.然后,您可以轻松地将其与您要检查的值进行比较.
链接:http://msdn.microsoft.com/en-us/library/b5xbyt6f(v = vs.90).aspx
您也可以尝试使用CDate()函数来查看将其转换为日期是否会正常执行.
If CDate(startDate) < Now() and CDate(endDate) > Now() Then
do something....
End If
Run Code Online (Sandbox Code Playgroud)