sql 语句中between and 查询, 时间参数如何传递?
var date1,date2:TDateTime;
……
Date1 := EncodeDate(year, month, 1);
Date2 := EncodeDate(year, month, 31);
query.SQL.Add('select * from sxdj where sxsj between date1 and date2');
这样为什么不可以?
然后我试了一下这种
query.SQL.Add('select * from sxdj where sxsj between :date1 and :date2);
parameters.parambyname('date1).value:=EncodeDate(year, month, 1);
parameters.parambyname('date2').value:=EncodeDate(year, month, 31);
error :object or class type required
missing operator or semicolon
求指点啊,谢谢谢谢
[解决办法]
'between '+QuotedStr(FormatDateTime('yyyy-mm-dd',date1))+ ' and '
如果是access就不用QuotedStr了,要加上 # 修饰
[解决办法]
access吧,日期2边要加上#
[解决办法]
自己看,access数据库
procedure TForm3.TeButton1Click(Sender: TObject);
var
b,e:TDate;
begin
b:=DateTimePicker1.Date;
e:=DateTimePicker2.Date;
ADODataSet1.Close;
ADODataSet1.CommandText := 'SELECT * FROM [表名] WHERE [日期] BETWEEN #'+DateToStr(B)+'# AND #'+DateToStr(E)+'# ORDER BY [日期]';
ADODataSet1.Open;
end;