关于时间段计算的问题,不难的。(20分)

  • 主题发起人 主题发起人 laker20
  • 开始时间 开始时间
L

laker20

Unregistered / Unconfirmed
GUEST, unregistred user!
我做sql查询代码如下,in_maskedit.text的值为数据库中的一存储时间。
out_maskedit.text:=datetostr(now);
query.SQL.Clear;
query.SQL.Add('select * from "history_pr.db"');
query.SQL.Add('where 入住时间>=:in_date and 退房时间<=:out_date');
query.ParamByName('in_date').AsDate:=strtodate(in_maskedit.Text);
query.ParamByName('out_date').AsDate:=strtodate(out_maskedit.Text);
query.Prepare;
query.Open;
其中,入住时间和退房时间的字段类型为date(paradox).
编译通过,但运行时错误提示:type mismatch in expression。
像这样的问题我该如何处理?
 
query.SQL.Add('select * from "history_pr.db"');
query.SQL.Add('where 入住时间>=:in_date and 退房时间<=:out_date');

不要参数不行吗?
sInDate := FormatDateTime('yyyy-MM-dd', strtodate(in_maskedit.Text));
FmtStr(sSQL, 'SELECT * FROM "history_pr.db WHERE 入住时间>=%S....',[sInDate]);
query.SQL.Add(sSQL);
...
 
query.SQL.Clear;
query.SQL.text:='select * from "history_pr.db"'+
'where 入住时间>='+FloattoStr(Now)+' and 退房时间<='+FloattoStr(Now);
query.Prepare;
query.Open;
 
用asdatetime吧
 
可能系統不認識你那格式的時間,
建議不要用in_maskedit,改為datetimepicker控件.
或設置ShortDateFormat,DateSeparator的值格式與
in_maskedit.text格式一致。
 
用asdatetime可以完成查询的动作,但结果不对,检索不到符合条件的纪录。
我改用datetimepicker了,这样就没问题了,谢谢各位!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
780
import
I
S
回复
0
查看
951
SUNSTONE的Delphi笔记
S
后退
顶部