经典的Asp日期比较无法正常工作

cur*_*Boy 3 asp-classic

我已经看到了几个与我的问题相似的标题,但他们专注于不同的观点.

我想问的是,

我想比较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

Nic*_*ost 6

尝试使用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)