在DELPHI应用程序中如何用SQL 语言根据日期动态查询(15分)

  • 主题发起人 主题发起人 binjinsx
  • 开始时间 开始时间
B

binjinsx

Unregistered / Unconfirmed
GUEST, unregistred user!
在编写查询应用时,其中有一个字段是日期,如果
根据其他字符字段查询时一切正常,而根据日期查询时,
则编译时无问题,在运行时则出错。
谢谢,给予解决。
 
要看你的日期格式,默认格式为mm/dd/yy,在bde config中可以更改,
可以用param查询,设个变量参数
另外,也可以动态生成sql语句,'sele....where fieldname='''+'mm/yy/dd'+'''....'
 
不管你日期格式用什么,在SQL中都用MM/DD/YYYY,
在SQL语句中'SELECT * FROM YOURTABLE WHERE YOURFIELD='''+'MM/DD/YYYY'+''''
 
1.日期格式可以为mm/dd/yy 也可以为mm/dd/yyyy
如果你要查timestamp类型还可以在后面加hh:nn:ss

2.在bde config中改了以后,对sql仍不起作用.

3.我认为动态生成sql比效好.如 query1.sql.add(format('select * from abc
where fieldname="%s"', [formatdatetime('mm"/"dd"/"yyyy', mydatetime)])

formatdatetime的formatstr不记得该怎么用了,错了莫怪,自己查帮助^_^
 
前面所回答的内容,我都试了以下,结果都不行,
还请各位给予详细解答。
谢谢
 
试试这个:
query1.sql.add('select * from abc where fieldname=:today');
Query1.ParambyName('today').asdate:=formatdatetime('mm/dd/yyyy', yourdate);
Query1.open;
 
不好意思, 上面错了.
>>Query1.ParambyName('today').asdate:=formatdatetime('mm/dd/yyyy', yourdate);
改成: Query1.ParambyName('today').asdate:=strtodate(yourdate);
 
sorry 我也写错了
同意:nickname的说法,设置bde没有什么太大用,我的式子写错了,应该是:
query1.sql.text:='sele....where fieldname='''+'mm/dd/yy'+'''....';
query1.execsql;
 
多人接受答案了。
 
后退
顶部