如何查询(100分)

  • 主题发起人 主题发起人 gsswm
  • 开始时间 开始时间
G

gsswm

Unregistered / Unconfirmed
GUEST, unregistred user!
我想查询一个时间段的内容,比如,查询2002-01-01到2002-01-31,可是我的数据库时间的
字段不能设成索引,请问大家该如何实现。小生在此先谢了。
 
select * from table1 where date between('2002-01-01') and ('2002-01-31')
 
在Delphi中實現;
Procedure query(date01,date02:tdatetime);
var date1,date2,str:string;
begin
query.close;
shortdateformat:='yyyy/mm/dd';
DateSeparator:='/'; //防止格式化出錯
date1:=Formatdatetime('yyyy/mm/dd',date01);
date2:=Formatdatetime('yyyy/mm/dd',date02);
str:='select * from table1 where date>='''+date1+''' and date<='''+date2+'''';
query.sql.text:=str;
query.prepared;
query.open;
end;
 
with query1 do
begin
clsoe;
sql.clear;
sql.add('select * from table1 where date>=:q1 and date<=:q2')
query1.params[0]:='2002-02-02';
qurey1.params[1]:='2002-02-23';
sql.open;
end;
 
没有索引也可以用Between and来设置查询条件,只不过速度慢点儿。
 

shortdateformat:='yyyy/mm/dd';
DateSeparator:='/';
这点很重要,经上方面都可行
 
日期时间字段最好用varchar.
通用一点。
 
我的程序是在form的窗体上有两个edit框,一个button按扭,要实现的功能是单击button,
在dbgrid中实现,edit框用来接受输入的日期。请大家告诉我。
 
用edit输入不如用DateTimePicker控件,不用担心用户输入日期是否正确.日期:DateTimePicker.Date
时间:DateTimePicker.Time;日期时间:DateTimePicker.DateTime
 
>'#'+'2002-01-01'+'and <'#'+'2002-01-31'+'#'
 
后退
顶部