我的一个TABLE 的格式是Paradox7,TABLE里面有一个DATE格式的 日期型 字段,里面的数据室2009-8-5,2009-10-8,等等;然后还有其他的一些字段,比如 金额等,我想用BDE中的query查询在一个时间段的数据,然后我这里还有一个COMBOBOX,里面的ITEMS有2008,2009,2010等年份.我想做的是在COMBOBOX 中选定一个年份,然后再用QUERY查询出这一段时间内的数据,我的问题是:
1:用SQL语句来查询怎样写;
2:写一段代码,计算在这一年的总金额的语句        for a := 1 to table1.RecordCount do
        begin
        if ( datetostr( table1.FieldValues['日期'] ) > datetostr( 2009-1-1 ) ) and ( datetostr( table1.FieldValues['日期'] ) < datetostr( 2010-1-1 ) ) then
        begin
        m1 := m1 + table1.FieldValues['金额'];
        table1.Next;
        end
        else
        begin
        table1.Next;
        end;这段代码可以运行,但是结果总是0,而且我想把( datetostr( table1.FieldValues['日期'] ) > datetostr( 2009-1-1 ) ) and ( datetostr( table1.FieldValues['日期'] ) < datetostr( 2010-1-1 ) )成一个可以随意选择年份的一段代码,请各位帮帮忙啊~

解决方案 »

  1.   

    唉,最近用access做进销存系统,其中也涉及到了用sQL语句查询某一时间范围内的记录,郁闷的是在MS-SQL中可以,在
    ACCess下不行,查询结果老是为空,无奈之下,我就增加一字段,将时间写成yyyymmdd字符串的形式,然后在用between
    and就可以查出来了,不知道对你有没有启示:
      
     select sum(金额) from tabel where 日期 between '20090101' and '20091231'
      

  2.   

    有的时候。你给出的日期条件和数据库中存在的格式不一定一样。
    参考:
    select * from table where convert(varchar(10),date,120)>=formatdatetime('yyyy-mm-dd',date);