在下面的语句中,我为什么监测不到复合的条件集
with query do
   begin
     close;
     SQL.Clear;
     SQL.Add('select * from employee');
     SQL.Add('where hireDate>'+DateToStr(Start_Time.DateTime));
     SQL.Add('AND');
     SQL.Add('hireDate<'+DateToStr(End_Time.DateTime));
     SQL.Add('AND');
     SQL.Add('salary>'+smin.Text);
     SQL.Add('AND');
     SQL.Add('salary<'+smax.Text);
     SQL.Add('Order by LastName');
     open;
   end;
好像在时间上出了问题,我用的是TDateTimePiker,应该怎么写?谢谢好有:就是我在DBGrid中显示了一些数据,如何实现它的清空,谢谢~

解决方案 »

  1.   

    不知道你用的是什么数据库,SQL Server的日期要用单引号,Access则要有'#'
    with query do
       begin
         close;
         SQL.Clear;
         SQL.Add('select * from employee');
         SQL.Add('where hireDate>'+'''' + DateToStr(Start_Time.DateTime) + '''');
         SQL.Add('AND');
         SQL.Add('hireDate<'+ '''' + DateToStr(End_Time.DateTime)+ '''') ;
         SQL.Add('AND');
         SQL.Add('salary>'+smin.Text);
         SQL.Add('AND');
         SQL.Add('salary<'+smax.Text);
         SQL.Add('Order by LastName');
         open;
       end;
      

  2.   

    xiexie 那:就是我在DBGrid中显示了一些数据,如何实现它的清空,谢谢~?
    分马上给,呵呵~~
      

  3.   

    用convert语句把时间格式设置一下
    用法看查询分析器的帮助
      

  4.   

    你把数据集CLOSE不就得了,
    要不执行一个无返回结果的查询
    …………
      

  5.   

    一定要注意sql语句中日期的格式.
      

  6.   

    是啊!把query先close再open一下,实现数据的刷新