用SQL语句怎样在DELPHI3中查询日期(50分)

  • 主题发起人 lizzstar
  • 开始时间
如果使用MS SQL Server,那么可用函数Getdate(),
select now=Getdate(),“now"为你选择的任意字符串。
如果数据库为InterBase或本地的Paradox等,那我也
不知道有什么函数可用。
 
sybase也是getdate()!
 
可以用参数呀.....
query.parambyname('mydate').asDateTime:=now;
 
如果仅查找出满足年、月、日之一条件的纪录,可这样
select * from test.db where extract(year from date) <1999
若要找出日期条件的纪录则为
SELECT * FROM test.DB WHERE DATE="10/20/1999"。
你可以看看localsql 的帮助,因为不同版本略有出入。
 
大家这么热情,我真的很感动,(也感冒了,说笑)
问题我提的问题有些不太明白,BDE好像不支持 WHERE MYDATE>11/11/1999
其中MYDATE为DATE类型 BETWEEN 也不行
使用SQL参数我还没试
 
我就是要找出满足日期条件的纪录
我用的是DELPHI3.0能直接存取的DBASE
 
我用FILTER属性以实现了查找功能,单不明白为什么使用
WHERE 语句不行呢
 
你保证SQL中的日期是'mm/dd/(yy)yy/',
试试这句
sql.add('select * from mytable where mydata>'''+'12/13/1999'+'''');
下面一句就不成了
sql.add('select * from mytable where mydata>'''+'13/12/1999'+'''');
 
to nickname:
还是不行
 
这是和你的BDE中数据日期模式有关系,DMY,YMD,MDY
再用相关的查询,
默认为MDY
查询DBASE数据库为
SELECT * FROM MYTABLE
WHERE MYDATE>"01/01/99"
 
再不成就把你的程序写来看看吧
 
我的BDE中数据日期模式为YYYYMMDD
在SQL Explorer中 MYDATE definition为
type :date ;size:8 ;physical length:8
分割符为-
用SELECT * FROM MYTABLE
WHERE MYDATE>"1999-01-01"
显示 "TYPE MISMATCH IN EXPRESSION"
同时我试过 mydate>1999-01-01
mydate>99-01-01
都显示同样信息
 
和BDE中的设置没有关系,你在FORM中放一个TQUERY,在属性SQL中
写select * from mytable where mydata>'01/01/1999',再
OPEN试试,我等你的结果
 
to nickname
这样我试过的,不成
我也重装过dephi,还是不成
不知问题处在那里
 
太夸张了吧
 
按照前面说过的应该可以啊:
select * from employee where extract(year from hiredate) =1988
这是PARADOX的,你可以试一下DBASE,应该没问题的。
 
多人接受答案了。
 
顶部