函数中定义一个String型变量sql,sql:='select datediff(day,s1,s2)'用来计算两个日期间隔天数,s1和s2是两个函数参数用来传递起始时间和结束时间,编译正常,执行时提示“不能识别列s2”,请问这句T-SQL应该怎样写才正确,谢谢

解决方案 »

  1.   

    执行时s1和s2用datetostr(TdateTimePicker.DateTime)赋值
      

  2.   

    执行时s1和s2用datetostr(TdateTimePicker.DateTime)做实参
      

  3.   

    SELECT DATEDIFF(day,'2008-12-9','2008-12-30') AS DiffDate 
    输入的日期为字符型楼主的sql:='select datediff(day,s1,s2)'
    变量这样赋值也不对吧,应该是
    sql:='select datediff(day,'''+s1+''','''+s2+''')'
      

  4.   

    楼主可以用DELPHI的函数去求天数差uses DateUtils;
    DaysBetween()
    另外你SQL语句有问题,可以写成
    sql:='select datediff(day,'+QuotedStr(s1)+','+QuotedStr(s2)+')';
      

  5.   


    多搞搞就好了,如果要在SQL语句中显示一个单引号,只要在变量前后加3个单引号就行了真不行,先showmessage一下,就明白那多那少了
      

  6.   


    这个函数用一下就好
    quotestr