修改一下就可以用!!!!if RadioButton1.Checked=true then begin with datamodule1.JhdADOQuery do begin close; sql.Clear; sql.Add('select * from 进货表 where 进货日期>='+''''+formatdatetime('yyyy-mm-dd hh:mm:ss',datetimepicker1.datetime)+''''+' and 进货日期<='+''''+formatdatetime('yyyy-mm-dd hh:mm:ss',datetimepicker2.datetime)+''''); open; end; end;
涉及到时间的都有这样的问题,再datepicker得到的时间系统会自动把后面的hh:mm:nn加上,得到的:2000-2-2 00:00:00,所以如果你要查询〉=2002- 10-6 and <2002-10-26的内容,只需要:where registerdate>= :vbegindate and registerdate<=:venddate Parameters.ParameterbyName('vbegindate').value:= datepicker1.date; Parameters.parameterbyname('venddate').value:= datepicker2.date+1; open; 自己试一试!
对不起,上面的sql写得有些错误修改如下:涉及到时间的都有这样的问题,再datepicker得到的时间系统会自动把后面的hh:mm:nn加上,得到的:2000-2-2 00:00:00,所以如果你要查询〉=2002- 10-6 and <2002-10-26的内容,只需要:where registerdate>= :vbegindate and registerdate<:venddate Parameters.ParameterbyName('vbegindate').value:= datepicker1.date; Parameters.parameterbyname('venddate').value:= datepicker2.date+1; open; 自己试一试!
query1.Close; query1.SQL.Clear; query1.SQL.Add('select * from debit_imp where date between :d1 and :d2'); query1.ParamByName('d1').AsDate:=d1.Date; query1.ParamByName('d2').AsDate:=d2.Date; query1.Open;
同意andy_lim(andy) 绝对可行
很简单,用int函数将时间去掉就行,只留下日期。query1.Close; query1.SQL.Clear; query1.SQL.Add('select * from debit_imp where date>:d1 and date<:d2'); query1.ParamByName('d1').AsDate:=int(d1.Date); query1.ParamByName('d2').AsDate:=int(d2.Date); query1.Open;
select * from xxx where tdate<=:tstartdate and tdate>=:tenddate将parameters.parambyname('tstartdate').value :=dtp.date
...就可以搞定
将时间 组合成 dd-tt-mm-ss
再用softer(softer)兄 的方法
parameters.parambyname('tstartdate').AsDateTime:=dtp.date
你在SQL_SERVER里把参数定义为字符串型(char(10)),
记住:Between...And...对字符串同样适用。
然后你在前台传时传入:
FormatDateTime('YYYY-MM-DD',[日期类型数据]);
即可。
begin
with datamodule1.JhdADOQuery do
begin
close;
sql.Clear;
sql.Add('select * from 进货表 where 进货日期>='+''''+formatdatetime('yyyy-mm-dd hh:mm:ss',datetimepicker1.datetime)+''''+' and 进货日期<='+''''+formatdatetime('yyyy-mm-dd hh:mm:ss',datetimepicker2.datetime)+'''');
open;
end;
end;
Parameters.ParameterbyName('vbegindate').value:= datepicker1.date;
Parameters.parameterbyname('venddate').value:= datepicker2.date+1;
open;
自己试一试!
Parameters.ParameterbyName('vbegindate').value:= datepicker1.date;
Parameters.parameterbyname('venddate').value:= datepicker2.date+1;
open;
自己试一试!
query1.SQL.Clear;
query1.SQL.Add('select * from debit_imp where date between :d1 and :d2');
query1.ParamByName('d1').AsDate:=d1.Date;
query1.ParamByName('d2').AsDate:=d2.Date;
query1.Open;
绝对可行
query1.SQL.Clear;
query1.SQL.Add('select * from debit_imp where date>:d1 and date<:d2');
query1.ParamByName('d1').AsDate:=int(d1.Date);
query1.ParamByName('d2').AsDate:=int(d2.Date);
query1.Open;