什么数据库?? MsSql: query1.sql.add('select * from 表 where convert(char(10),字段,120) like'''+Edit1.text+'%''');
比如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)+'#';
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;
sql := 'select * from employee where left(convert(varchar(20), hire_date,120),' + Length(Edit1.text) + ' ) = ' + QuotedStr(edit1.text);
sqlserver里year,month,day 关键字了sql.text:=format('select * from table1 where year(日期字段)=%d',[strtoint(edit1.text)]);
select * from 表 where convert(char(10),字段,120) like'''+Edit1.text+'%''
MsSql:
query1.sql.add('select * from 表 where convert(char(10),字段,120) like'''+Edit1.text+'%''');
全年
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)+'#';
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;
+ Length(Edit1.text) + ' ) = ' + QuotedStr(edit1.text);