SQL SERVER 中怎么写筛选条件啊
在收付表中有收付类型和交(提)货时间,想把收付类型为收款并且距离当前日期小于十天的合同找到,怎么写啊

解决方案 »

  1.   


    select *  from tb where DATEDIFF (dd, GETDATE() ,合同签至日期  ) <10
      

  2.   

    Option Explicit
    Dim rs As New ADODB.Recordset
    Private Sub Form_Load()
       Icon = LoadPicture(App.Path & "\favicon.ico")
        On Error Resume Next                   
        rs.Close
        rs.CursorLocation = adUseClient    
        rs.Open "Select * From 收付表 Where 收付类型='收款' AND  DATEDIFF (dd, GETDATE() ,收付款.交(提)货日期  ) <= 10", cn, adOpenKeyset, adLockOptimistic
        Set DataGrid1.DataSource = rs
        If rs.RecordCount = 0 Then MsgBox "无此合同"
      
    End Sub
    为什么老是输出无此合同呢,是什么原因啊,当把where条件去掉日期的限制以后可以得到收付类型为收款的合同,这是为什么呀
      

  3.   

    我是在VB中用的SQL SERVER 语句,说GETDATE()未定义咋整哇
      

  4.   

    你的交(提)货日期 跟当前时间比那个大啊?datediff函数里参数如果前大于后的时间会是负数
      

  5.   


    弄了测试例子了没?弄个到期时间、收付类型='收款'的例子试下了?
    还有:你这是啥语言啊,如果是其他我见过的语言这是赋值语句啊:
    If rs.RecordCount = 0 肯定始终运行 MsgBox "无此合同"
      

  6.   

    If rs.RecordCount == 0 才是吧..其他语言等价..
      

  7.   

    abs(datediff(day,getdate(),日期))<10这是取绝对值的
      

  8.   

    这是VB呀,VB里面就是这样写的,判断条件的时候,不用==
      

  9.   

    说GETDATE函数未定义,我是在VB6.0中用的
      

  10.   

    不能类似把这段T-SQL作为参数传入SQL SERVER运行么?
      

  11.   

    我晓得,C语言和JAVA里面都不能用=来判断,但是VB确实如此
      

  12.   

    就是datediff函数哇,不行。说里面用到的获取当前日期的getdate函数未定义
      

  13.   

    大家都说用这个,VB说getdate函数未定义怎么办
      

  14.   

    就是要用now()获取当前时间