请大家把这代码在VB里试一下就明白了
Dim date1, date2
date1 = FormatDateTime("2004-4-27", 2)
date2 = FormatDateTime(Now(), 2)
MsgBox date1 > date2为什么"2004-4-7"会比"2004-4-3"小呢?

解决方案 »

  1.   

    你那是以字符串的方式比较,当然小了!
    Private Sub Command1_Click()
    Dim date1, date2 As Date
    date1 = DateValue("2004-4-27")
    date2 = FormatDateTime(Now())
    MsgBox date1 > date2
    End Sub
    换成这个吧!!嘿嘿!
      

  2.   

    为什么"2004-4-7"会比"2004-4-3"小呢
    而你的date1 = FormatDateTime("2004-4-27", 2)是 27啊
    2004-4-27
    2004-4-3
           ^
    3的ASCII码比2大
      

  3.   

    Private Sub Command1_Click()
    Dim date1, date2 As Date
    date1 = FormatDateTime("2004-4-27", 2)
    date2 = FormatDateTime(Now(), 2)
    MsgBox date1 > date2
    End Sub
      

  4.   

    MsgBox date1 > date2进行的是字符串比较
    2004-4-27
    2004-4-3 
           "2"<"3"
      

  5.   

    谢谢各位了.
    可是我实际上是在ASP里面用,在那里没有定义为date类型的语句.
      

  6.   

    FormatDateTime的返回值是字符串
    由于"2004-4-"相等、"2"<"3"
    所以"2004-4-27"<"2004-4-3"
      

  7.   

    谢谢各位了.
    可是我实际上是在ASP里面用,在那里没有定义为date类型的语句.
      

  8.   

    <%
    Dim date1, date2
    date1 = datevalue("2004-4-27")
    date2 = datevalue(Now())
    response.write date1 > date2
    %>
    晕,我的那个,你把变量类型去掉不就行了吗??
      

  9.   

    如果你将你的代码改写如下,你会发现你的问题所在
    Dim date1 As Date, date2 As Date
    date1 = FormatDateTime("2004-4-27", 2)
    date2 = FormatDateTime(Now(), 2)
    MsgBox date1 > date2