SELECT * FROM TBL_BorrowInfo 
WHERE DATEDIFF(dd,(DATEADD("m",1,BorrowDate),111)),GETDATE()) > 0 这条语句的意思就是找出TBL_BorrowInfo表中过期一个月的记录。
一个月的时间的定义:
例如2010-5-31号借出,则应还书日期为2010-6-31
    2010-2-1号借出,则应还书日期为2010-3-1这条语句的报错信息:
',' 附近有语法错误。怎么改这条语句才会实现这个功能呢?

解决方案 »

  1.   

    SELECT * FROM TBL_BorrowInfo 
    WHERE DATEDIFF(dd,(DATEADD(m,1,LastUpdateDate)),GETDATE()) > 0
      

  2.   

    DATEDIFF(d,DATEADD(m,1,LastUpdateDate),GETDATE()) > 0
      

  3.   

    SELECT * FROM TBL_BorrowInfo 
    WHERE DATEDIFF(mm,BorrowDate,GETDATE()) > 1
    or (DATEDIFF(mm,BorrowDate,GETDATE()) = 1 and right(convert(varchar(10),BorrowDate,120),5) <  right(convert(varchar(10),GETDATE(),120),5))
      

  4.   

    LastUpdateDate是什么意思?为什么不是BorrowDate呢?
      

  5.   

    希望有人能解释下毓华的代码...
    1F和2F的代码我试了,提示说:
    列名 'LastUpdateDate' 无效。(我的表中没有这个LastUpdateDate)
    请问这个列名是什么意思?
      

  6.   

    你试试不就知道了.DATEDIFF(mm,BorrowDate,GETDATE()) > 1
    --这个是指时间大于1个月的.(DATEDIFF(mm,BorrowDate,GETDATE()) = 1 and right(convert(varchar(10),BorrowDate,120),5) <  right(convert(varchar(10),GETDATE(),120),5))
    --这个是指时间相差一个月,但是日期必须小于当前日期.
      

  7.   

    为什么呢?小弟愚笨,请人解释...
    DATEDIFF(mm,BorrowDate,GETDATE()) > 1
    这条语句把现在的时间与借书的时间相减大于一个月就已经说明过期了,难道还有别的情况?
      

  8.   

    今天是6.53.5,4.5借的,大于一个月,算.
    这里用:DATEDIFF(mm,BorrowDate,GETDATE()) > 1
    --这个是指时间大于1个月的.5.4借的,和今天月份差是一个月,但是4<5,所以算超过一个月.
    5.5借的,刚好一个月,不算.
    5.6借的,和今天月份差是一个月,但是6>5,不算一个月.
    这里用:(DATEDIFF(mm,BorrowDate,GETDATE()) = 1 and right(convert(varchar(10),BorrowDate,120),5) < right(convert(varchar(10),GETDATE(),120),5))
    --这个是指时间相差一个月,但是日期必须小于当前日期.
      

  9.   

    SELECT * FROM TBL_BorrowInfo 
    WHERE DATEDIFF(dd,DATEADD(m,1,BorrowDate),GETDATE()) > 0 上面的有人把字段写成LastUpdateDate,可能考虑续借之类的情况