问题1. 请问下我的人事管理系统想实现提前一个星期的生日提示,sql语句该怎么写呢?temsource="select * from people where datediff ("d",now,birthday)<=7 and datediff ("d",now,birthday)>0"
'msgbox temsource
Adodc2.RecordSource = tmpsource
Adodc2.Refresh
          If Adodc2.Recordset.EOF = False Then
          MsgBox Adodc2.Recordset.Fields(0)
          End If
为什么这样写老报错,说什么类型不匹配birthday 是生日字段,存储格式为"yyyy-mm-dd",类型为文本问题2. sql语句后面的条件判断的表达式能否直接调用表里的字段呢?

解决方案 »

  1.   

    你看看,这个函数datediff()的参数说明,再使用.
      

  2.   

    为了测试下是否与数据表字段是文本有没关系,我在新窗口测试如下Private Sub Command1_Click()
    Dim a, b As String
    a = Format(Now, "yyyy-mm-dd")
    b = "2006-12-3"
    MsgBox DateDiff("d", b, a)
    End Sub文本可以直接比较啊,我这样测试的,结果都正确啊 
    我想是不是temsource这个语句的问题,这里需不需要把datediff函数用逗号分开呢?如果需要的话该怎么分?因为vb的数据库查询里会把所有双括号里面的字符都当作字符串,这样datediff不是失去了它的函数意义?