数据库查询问题!
1楼: 我使用的数据库是从银行下载的账务明细,我把他们导入到ACCESS数据库里,其中有一个字段为:交易时间,类型为字符型,其格式例如:2005-03-23 10:23:56
我现在做一个查询,查询出一个时间段内的记录,我用了两个datetimepicker组件,一个表示开始时间,一个表示终止时间,问题是datetimepicker只能有两种选择:只能表示日期,或只能表示时间。现在我把这两个datetimepicker都用来表示日期,问题就出来了:
我要用这两个日期作为查询条件,与表中的“交易时间“字段相比较,查询出满足这个时间段内的记录,我应该怎样把交易时间这个字段处理一下,使它可以与datetimepicker里的日期作比较啊?或者有其它的方法,让我可以查询得出来结果啊?请教高手啊~!急!
字串6
2楼: 你可以取字符串的前十位,然后再转换成日期型,
strtodate(leftstr(交易时间,10));
注意:要在过程开始的uses里加上StrUtils才能用. 字串3
3楼: 开始时间=formatdatetime(‘yyyy-mm-dd 00:00:00‘,datetimepiker1.date); 结束时间=formatdatetime(‘yyyy-mm-dd 23:59:59‘,datetimepiker2.date);字串3
4楼: http://www.delphibbs.com/delphibbs/dispq.asp?lid=3034157 字串4 5楼: with ADODataSet1 do
begin
close;
CommandText := ‘select * from 表名 where 交易时间 between :StartTime and :EndTime‘;
Parameters.ParamByName(‘StartTime‘).Value := Int(DateTimePicker1.DateTime)+Frac(DateTimePicker2.DateTime);
Parameters.ParamByName(‘EndTime‘).Value := Int(DateTimePicker3.DateTime)+Frac(DateTimePicker4.DateTime);
Open;
end; 字串3
6楼: 同意2楼!!!!
这个我有经验,虽然没有精确到时间,但是用日期查询,我做过很多,都是这么做的
其实通常数据库里存放时间的时候我都是用yyyymmdd 这样的8位字符存放的,比较起来也方便啊 字串8
7楼: Select * from TableName Where Left(交易时间,10)
Between Convert(VarChar(10),开始日期,126)
And Convert(VarChar(10),截止日期,126) 字串6 8楼: 多人接受答案了。 字串9 9楼: 晕,照你的要求做出来,反而得分最少的是我。 字串4 上一篇:请教一个很难的SQL语句 下一篇:第三方控件问题Ehlib3.4问题,请高手解答。