我在数据库里存的日期是2000-10-25型的,我如果想找出2000年的全部信息和某个月的信息我该怎么判断(在edit中输入年份,就能查出当年的全部信息,输入年份月份,显示这个年这月的全部数据).
谢谢指教!

解决方案 »

  1.   

    什么数据库??
    MsSql:
    query1.sql.add('select * from 表 where convert(char(10),字段,120) like'''+Edit1.text+'%''');
      

  2.   

    比如edit1是存年,edit2是月
    全年
    tmpSQL :='select * from table where date1=>#'+edit1.text+'-1-1#'+' and date1<=#'+edit1.text+'-12-31#';某年某月,实现就有点难度,关键是判断每月有几天,(30,31,28,29天),好像有一个函数返回每月的最后一天的,自己查看一下,也可以自己编写实现,比如最后一天的数字为n:
    tmpSQL :='select * from table where date1=>#'+edit1.text+‘-'+edit2.text+'-1#'+' and date1<=#'+edit1.text+‘-'+edit2.text+'-'+'inttostr(n)+'#';
      

  3.   

    var
     y,m,d:word;
    begin
    DecodeDate(strtodate(edit1.text),y,m,d);
    query.sql.text:='select * from date>='+#39+format('%d-01-01',[y])+#39
    +'  and  date<'+#39+format('%d-01-01',[y+1])+#39;
    query.open;
      

  4.   

    sql := 'select * from employee where left(convert(varchar(20), hire_date,120),' 
      + Length(Edit1.text) + ' ) = ' + QuotedStr(edit1.text);
      

  5.   

    sqlserver里year,month,day 关键字了sql.text:=format('select * from table1 where year(日期字段)=%d',[strtoint(edit1.text)]);
      

  6.   

    select * from 表 where convert(char(10),字段,120) like'''+Edit1.text+'%''