怎么用sql查找时间段???(50分)

  • 主题发起人 主题发起人 hj007008
  • 开始时间 开始时间
H

hj007008

Unregistered / Unconfirmed
GUEST, unregistred user!
我的表中有一个字段是日期时间格式。
如何用Sql查找不指定日期时间段
用两个DateTimePicker
请写出代码
 
DateTimePicker.data转换成string
var
s1,s2:string;
s1:=datetimetostr(DateTimePicker1.data);
s2:=datetimetostr(DateTimePicker2.data);
adoquery1.sql.add('select * from table where f_data >'''+s1+''' and f_data<'''+s2+''' ';
 
select * from tabname where rq>:rq1 and rq<:rq2
parambyname('rq1').asdatetime:=
 
try
with ADOQuery1 do
begin
if Active then Active:=False;
SQL.Clear;
SQL.Add('SELECT * FROM TABLENAME');
SQL.Add('Where Date>=:A and Date<=:B');
Prepared;
Parameters.ParamByName('A').Value:=DateTimePicker1.DateTime;
Parameters.ParamByName('B').Value:=DateTimePicker2.DateTime;
Active:=True;
end;
except
ShowMessage('无法打开数据集!',0);
end;
 
Var
S1,S2:String;
Begin
S1:=DatetimeToStr(DateTimePicker1.Data);
S2:=DatetimeToStr(DateTimePicker2.Data);
AdoQuery1.SQL.Add('SELECT * FROM TABLE WHERE f_data BETWEEN ''' + S1 + ''' AND '''+ S2 +'''';
End;
 
我前几天也遇到了这样的问题,我感觉用decodedate最简单了
var
year,month,dd:word;
begin
decodedate(DateTimePicker1.Date,year,month,dd)
adoquery.sql.add('select * from table where year(填报时间)='''+inttostr(year)+''' and month(填报时间)='''+inttostr(month)+'''')
 
'''+FormatDateTime('YYYY-MM-DD HH:MM:SS',Date)+'''
 
如果是ACCESS库,在查询时间时就为:#2001-9-1#
在字符串里表示为:'select * from 表 where between #'''+时间变量+'''+'#' and #'''+时间变量+'''+'#''
 
lb_icesea79的回答基本上是对的 。 我同意
 
多人接受答案了。
 
后退
顶部