s:='SELECT sum(tcount) FROM tcount WHERE field_name='''+t+''' and aaa>='''+edit1.Text+'''and aaa<='''+edit2.Text+'''';
query1.SQL.Add(s);
query1.open;
aaa是日期,但为何上述语句查找不到数据?

解决方案 »

  1.   

    你直接把她当做是double的就成了
    DateTime本来就是浮点型的
    你应该是在SQL Server中的,是吗?
      

  2.   

    s:='SELECT sum(tcount) FROM tcount WHERE field_name='''+t+''' and (aaa
    between :date1t and :date2)';
    query1.SQL.Add(s);
    query1.params.parambyname('date1').value:=strtodatetime(edit1.text);
    query1.params.parambyname('date2').value:=strtodatetime(edit2.text);
    query1.open;
      

  3.   

    你的结果是一个和(sum(tcount)),需要显示出来才行的啊!
    你的代码没有问题,
    s:='SELECT sum(tcount) as num  FROM tcount WHERE field_name='''+t+''' and aaa>='''+edit1.Text+'''and aaa<='''+edit2.Text+'''';
    query1.SQL.Add(s);
    query1.open;
    edit3.text:=query1.fieldbyname('num').asstring;
      

  4.   

    s:='SELECT sum(tcount) FROM tcount WHERE field_name='''+t+''' and (aaa
    between :date1t and :date2)';
    query1.SQL.Add(s);
    query1.params.parambyname('date1').value:=strtodatetime(edit1.text);
    query1.params.parambyname('date2').value:=strtodatetime(edit2.text);
    query1.open;
      

  5.   

    s:='SELECT sum(tcount) FROM tcount WHERE field_name='''+t+''' and (aaa
    between :date1t and :date2)';
    query1.SQL.Add(s);
    query1.params.parambyname('date1').value:=strtodatetime(edit1.text);
    query1.params.parambyname('date2').value:=strtodatetime(edit2.text);
    query1.open;
      

  6.   

    需看什么数据库而且ACCESS需在日期前加'#'
    而ACCESS库最好用BETWEEN  日期1 AND  日期2
      

  7.   

    我是在ACCESS下的我试过用BETWEEN,但还是不行,因为特定原因,AAA字段是文本型字段,但必须用来存储日期,这样是否不行?
      

  8.   

    用ACCESS
    AAA字段是文本型字段,但必须用来存储日期
    当然可以,我以前的程序就这样做的。查一下给你一些源码参考
      

  9.   

    // 因为库中存储的格式是2003年12月03日
    // EnterDate 字符型,存储日期
      // 对条件语句的设定
      Search_Condition := ' where Trim(EnterDate) >= '''+ FormatDateTime('yyyy''年''mm''月''dd''日''',dtp_StartDate_Origin.Date);
      Search_Condition := Search_Condition+''' AND Trim(EnterDate) <= '''+ FormatDateTime('yyyy''年''mm''月''dd''日''',dtp_EndDate_Origin.Date)+'''';        adoq_Class.Close;
            adoq_Class.ConnectionString := sConnection;
            adoq_Class.SQL.Text := 'Select Name,EnterDate,Entertime,Status from UserInfo'+Search_Condition;
            adoq_Class.Open;
            if adoq_Class.RecordCount >0 then
            begin
              while not adoq_Class.Eof do
              begin
                application.ProcessMessages;
                ...
                adoq_Class.Next;
              end;
            end;