下面代码怎么也过不去啊!!
数据库中的日期是 datetime 类型的,怎么比较啊 高手指教啊var
p1,p2:tdate;
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select * from  用餐记录表 where 日期<=:p1 and 日期>=:p2 orderby 日期 asc');
Parameters.ParamByName('p1').Value :=datetimepicker1.Date;
Parameters.ParamByName('p2').value:=datetimepicker2.Date;
prepared;
open;

解决方案 »

  1.   

    加一个datetimetostr(datetimepicker1.date)
      

  2.   

    string类型和数据库中的datetime 可以直接比较吗? 我试史
      

  3.   

    datetimetostr(datetimepicker1.date)
    学习 ing
      

  4.   

    msSQL和Access库是不一样的?你用的什么数据库??
      

  5.   

    formatdatetime('yyyy-mm-dd hh:mm:ss',datetimepicker1.date);
      

  6.   

    mssql
    var
    p1,p2:string;
    begin
    with adoquery1 do
    begin
    close;
    sql.Clear;
    p1:=datetimetostr(datetimepicker1.date);
    p2:=datetimetostr(datetimepicker2.date);
    sql.Add('select * from  用餐记录表 where 日期>='''+p1+''' and 日期<='''+p2+''' ');
    prepared;
    open;
    已经通过,但是我用上面的办法,中说找补到变量p1 是为什么呢!!
      

  7.   

    formatdatetime('yyyy-mm-dd hh:mm:ss',datetimepicker1.date);
    formatdatetime这个函数很好的,可以生成指定格式的字符串阿!!
      

  8.   

    formatdatetime('yyyy-mm-dd hh:mm:ss',datetimepicker1.datetime);
    应该这样调用!!前面漏了time了阿!!
      

  9.   

    begin
    with adoquery1 do
    begin
    close;
    sql.Clear;
    sql.Add('select * from  用餐记录表 where 日期<=:p1 and 日期>=:p2 orderby 日期 asc');
    Parameters.ParamByName('p1').Value :=datetimepicker1.Date;
    Parameters.ParamByName('p2').value:=datetimepicker2.Date;
    prepared;
    open;
    这样写就可以了
    P1和P2不用定义的,难道大家都晕了,没有人看出来吗?