DecodeDate(Date: TDateTime; var Year, Month, Day: Word);

解决方案 »

  1.   

    不好意思:应该是
     EncodeDate(Year, Month, Day: Word): TDateTime;
      

  2.   

    谢谢,能举个例子吗?
    在使用的时候前面是不是还要加些像 DM.DataModule1.Query1... 之类的?
    我下面的写法有错误,谁能告诉我该怎么写?    DM.CJDataModule.Query_sell.SQL.Append('Select * from sell Where id=:"&(temp)&" and "&time1&"=<"&sell_date&" and "&sell_date&"<"&time2&"');
        DM.CJDataModule.Query_sell.ParamByName('temp').asString:=Edit1.Text;
        time1:=EncodeDate(Year1, Month1, Day1: Word): TDateTime;
        time2:=EncodeDate(Year2, Month2, Day2: Word): TDateTime;
        DM.CJDataModule.Query_sell.ParamByName.('year1').AsDateTime:=ComboBox3.Text;
        DM.CJDataModule.Query_sell.ParamByName.('month1').AsDateTime:=ComboBox4.Text;
        DM.CJDataModule.Query_sell.ParamByName.('day1').AsDateTime:=ComboBox5.Text;
        DM.CJDataModule.Query_sell.ParamByName.('year2').AsDateTime:=ComboBox6.Text;
        DM.CJDataModule.Query_sell.ParamByName.('month2').AsDateTime:=ComboBox7.Text;
        DM.CJDataModule.Query_sell.ParamByName.('day2').AsDateTime:=ComboBox8.Text;
      

  3.   

    不是没有高手啊,高手在睡觉呢。
    你对Delphi一点感觉都没有啊,你应该仔细地系统地学习一下Delphi。程序改为:
    DM.CJDataModule.Query_sell.SQL.Append('Select * from sell Where id=:temp and :time1=<sell_date and sell_date<:time2');
    // 参数前面用冒号就足够
    // 只有三个参数:temp, time1, time2
    DM.CJDataModule.Query_sell.ParamByName('temp').asString:=Edit1.Text;
    time1:=EncodeDate(StrToInt(ComboBox3.Text), StrToInt(ComboBox4.Text), StrToInt(ComboBox5.Text) );
    time2:=EncodeDate(StrToInt(ComboBox6.Text), StrToInt(ComboBox7.Text), StrToInt(ComboBox8.Text));
    DM.CJDataModule.Query_sell.ParamByName.('time1').AsDateTime := time1;
    DM.CJDataModule.Query_sell.ParamByName.('time2').AsDateTime := time2;