是ACCESS数据想查询从3月11日到9月12日的过生日的客户,起始日期和终止日期是DATETIMEPICKER1,只带“月-日”的格式

解决方案 »

  1.   

    Delphi中:
    Unit
    DateUtilsCategory
    date/time routinesfunction DayOf(const AValue: TDateTime): Word;DescriptionCall DayOf to obtain the day of the month represented by a specified TDateTime value. DayOf returns a value between 1 and 31.Note: DayOf returns the same value as the DayOfTheMonth function.Sql中用month(date) 和 day(date)
      

  2.   

    select * from 表 where datetime between formatdatetime('MM-dd',datetimepicker1.datetime) and formatdatetime('MM-dd',datetimepicker2.datetime)
      

  3.   

    貌似不行,不过可以变通一下
    select   *   from   表   where   datetime   between   #'+'1900-'+formatdatetime( "MM-dd ",datetimepicker1.datetime)+'#   and   #'+formatdatetime('YYYY',Now)+'-'+formatdatetime( "MM-dd ",datetimepicker2.datetime)+'#';
      

  4.   

    楼上兄弟提供的方法我都试了,都不对。
    //这个会把所有的生日都列出,因为所有人的生日都在1900到2007年之间。
    select       *       from       表       where       datetime       between       # "+ "1900- "+formatdatetime(   "MM-dd   ",datetimepicker1.datetime)+ "#       and       # "+formatdatetime( "YYYY ",Now)+ "- "+formatdatetime(   "MM-dd   ",datetimepicker2.datetime)+ "# ";
    我的意思应该是日期只带月和日的那种,如果加上年了就不会准确。
    有没有这样的函数提取月和日的,如1998-10-12,能直接提取"10-12"
      

  5.   

    而“brightyang(香水,我只用davidoff)”的做法是不符合的因为我的字段是日期形“2007-2-1‘的,带年的,不匹配。 
      

  6.   

    而“brightyang(香水,我只用davidoff)”的做法是不符合的因为我的字段是日期形,//2007-12-11怎么能和12-11比较呢?测试说表达式不匹配。select   *   from   表   where   datetime   between   formatdatetime( "MM-dd ",datetimepicker1.datetime)   and   formatdatetime( "MM-dd ",datetimepicker2.datetime)
      

  7.   

    select * from 表 where (month(datetime ) between '1' and '12' ) and (day(datetime ) between '1' and '10')
    查每个月前10天的
      

  8.   

    procedure TfrmMain.Button1Click(Sender: TObject);
    begin
      with ADOQuery1 do
      begin
        Close;
        SQL.Text := 'SELECT  * FROM Table1 where Format(Birthday, ''mm-dd'') between :p1 and :p2';
        Parameters.ParamByName('p1').Value := FormatDateTime('MM-DD', DateTimePicker1.Date);
        Parameters.ParamByName('p2').Value := FormatDateTime('MM-DD', DateTimePicker2.Date);
        Open;
      end;
    end;