在ado+sql2000,如果表里有一个字段为datetime型,我在一个文本框中输入“0508”表示2005年8月,那我如何通过“0508”去实现到数据库中找出2005年8月里的所有记录
 

解决方案 »

  1.   

    select * from table where year(字段)='05' and month(字段)='08';
      

  2.   

    query1.close;
    query1.clear;
    query1.add('select * from table where substr(ymd,3,4)='''+edit1.text+'''’)
    query1.open;在文本框edit1中输入四位查询码进行查询。table是表名,ymd是存放年月日的字段。
      

  3.   

    手误,函数不是substr而是substring。
      

  4.   

    ADOQuery1.Close;
      ADOQuery1.SQL.Text := 'SELECT * FROM 表名'
        + ' WHERE DATEPART(yyyy,日期字段) = ' + '20' + Copy(Edit1.Text, 1, 2)
        + ' AND DATEPART(mm, 日期字段) = ' + IntToStr(StrToInt(Copy(Edit1.Text, 3, 2)));
      ADOQuery1.Open;
      

  5.   

    'select * from Tabel1 where CONVERT(varchar(4), rq, 12)=' + QuotedStr(Edit1.Text) 
    //Edit1.Text = '0508'