当前位置:主页>delphi7/进销存和数据库> 文章内容

数据库查询问题!

发布时间:2010-02-03 | QQ免费站
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