if DataDiff(dd,借书日期,GETDATE())>30
   BEGIN
--      计算罚款
   END
ELSE
  BEGIN  END

解决方案 »

  1.   

    可以直接相减
    if exists(select name from tb where getdate()-借书日期>30)
       print '罚款'
      

  2.   

    这样错了那里了   罚款=iif(DateDiff(dd,借书日期,getdate())>30,DateDiff(dd,借书日期,getdate())*[单价]*1.012,0)
      

  3.   

    case when DateDiff(dd,借书日期,getdate())>30  then DateDiff(dd,借书日期,getdate())*[单价]*1.012 else 0 end
      

  4.   

    大佬,你是用什么数据库啊?
    SQL SERVER用CASE
    就是:
    罚款=case when DateDiff(dd,借书日期,getdate())>30 then DateDiff(dd,借书日期,getdate())*[单价]*1.012 else 0 end或:
    罚款=case when getdate()-借书日期>30 then (getdate()-借书日期)*[单价]*1.012 else 0 end
      

  5.   

    问题已经解决了谢谢你们,不过zjcxc(邹建) 的第二种方法不行,
    服务器: 消息 403,级别 16,状态 1,行 1
    对数据类型而言运算符无效。运算符为 multiply,类型为 datetime。第一种是可以的