ghdate:=FormatDateTime('yyyy-mm-dd',Datetimepicker1.DateTime);
......
SQL.Add(' AND BH.GHRQ=(SELECT DATEDIFF(DAY,"1899-12-30","'+ghdate+'"))');结果,在执行查询的时候,提示如下:
...raised exception class EOleExceeption with message '列名'2013-02-18'无效。’。这里我在创建窗体的时候,DateTimePicker1.DateTime:= now;
看了好久,感觉转换日期的时候没错啊,各位大牛,帮我看看是怎么回事?小弟在这里学习学习!谢谢!delphisql

解决方案 »

  1.   

    试试这个
    SQL.Add(' AND BH.GHRQ= DATEDIFF(DAY,"1899-12-30","'+ghdate+'")');
      

  2.   


    还是提示刚才那个个错误啊!,顺便说一下,数据库里面的那个GHRQ是int类型的。本菜实在不知问题所在。大哥们,再帮我看看。
      

  3.   

    日期型的参数最好不要用FormatDateTime转成字符去传递,因为每个客户端的日期格式各不相同,转换出的格式也格不相同;
    最好是以参数传递,建立一个参数,然后用ParamByName('Query_Date').AsDateTime := Now;
    这样传递肯定就不会出问题。
      

  4.   

    SQL.Add(' AND BH.GHRQ=DATEDIFF(Day,''1899-12-30'','''+ghdate+''')');
      

  5.   

    SQL.Add(' WHERE BH.GHRQ=DATEDIFF(DAY,"1899-12-30",":D")');
    Parameters.ParamByName('D').Value:= DateToStr(Datetimepicker1.Date);回答3楼,用参数传递,提示 qry1:Parameter'D' NOT found.提示我没定义。本人刚学这个,请各位大哥多指点指点。
      

  6.   

    用ShowMessage將最終的SQL語句顯示出來,看一下是不是有問題。