在数据库中有一个字段是datea(日期型),现在需要从DateTimePicker1中选择的日期中,按年和月统计出来数据,比如只统计2003年4月份的数据,SQL语句怎么写?
谢谢!!

解决方案 »

  1.   

    AdoQuery1.Close;
    AdoQuery1.Sql.Clear;
    AdoQuery1.Sql.Add('select * from biao where datea>=:'date1' and datea<=:'date2') //或用between,怎样统计自己决定
    AdoQuery1.ParamsByName('date1').AsDateTime:=DateTimePicker1.DateTime;
    AdoQuery1.ParamsByName('date2').AsDateTime:=DateTimePicker2.DateTime;
    AdoQuery1.Open;//用两个DateTimePicker
      

  2.   

    use pubs
    select * from employeeselect count(*) as asum From Employee where (year(hire_date)=2003 and month(hire_date)=4)
      

  3.   

    zjf27(还是菜的很)  的方法很不错
      

  4.   

    DateTimePicker1.date:=DateTimePicker1.date-StrToInt(FormatDateTime('dd',DateTimePicker1.date))+1;
    使用上面的方法,可以得到某月的第1天,比如说DateTimePicker1是2003年5月1日,
    我想在DateTimePicker2中自动得到2003年6月1日(或者2003年5月31日也可以),这样就可以使用2个日期范围进行统计了,
      

  5.   

    adoquery1.sql.add('select * from Employee where to_char(字段名,''yyyy-mm'')='''+
    formatdatetime('yyyy-mm',DateTimePicker1.date)+'''');
    就OK啦!
      

  6.   

    AdoQuery1.Close;
    AdoQuery1.Sql.Clear;
    AdoQuery1.Sql.Add('select * from biao where to_char(datea,''YYYY-MM'')>=:date1 and to_char(datea)<=:date2') //或用between,怎样统计自己决定
    AdoQuery1.ParamsByName('date1').AsString:=FormatDateTime('YYYY-MM',DateTimePicker1.DateTime);
    AdoQuery1.ParamsByName('date2').AsString:=FormatDateTime('YYYY-MM',DateTimePicker2.DateTime);
    AdoQuery1.Open;//用两个DateTimePicker
      

  7.   

    adoquery1.sql.add('select * from Employee where to_char(字段名,''yyyy-mm'')='''+
    formatdatetime('yyyy-mm',DateTimePicker1.date)+'''');