如何用Delphi实现Sql2000数据库时间查询(100分)

  • 主题发起人 主题发起人 Alcatel
  • 开始时间 开始时间
A

Alcatel

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个应用系统中,需要检索Sql2000数据库中有关记录的日期是否与当前日期或指定日期
相符,怎么编写该语句。
 
SELECT * FROM tablename WHERE datefield=日期
 
SELECT * FROM tablename WHERE datefield=:rq
parambyname('rq').asdatetime:=datetimepicket1.date
 
SELECT * FROM tablename WHERE datefield=:rq
parambyname('rq').asdatetime:=datetimepicket1.date
 
sql2000中的日期型字段常带时间,形如'2002-05-10 23:00:06',所以在delphi前台进行
查询时,我们一般不需查找具体的时间吻合,常仅需日期符合旧可以了,比如查找以上的
'2002-05-10',在前台输入的语句select * from sometable where 日期字段='2002-05-10
',将不能正确地查到该记录,因为这语句到了sql2000将实际相当于
select * from sometable where 日期字段='2002-05-10 00:00:00' 与'2002-05-10
23:00:06'的记录当然不符合,解决方法是应用范围条件:
select * from sometable where 日期字段>=:d1 and 日期字段<:d2
d1 应该是:'2002-05-10'
d2 应该是:'2002-05-11' 在sql2000将编译成
....日期字段>=:'2002-05-10 00:00:00' and 日期字段<'2002-05-11 00:00:00'...

这样就可以了!同样可以引申到某段日期的查询!


 
select * from 表名 where convert(char(10),日期,120)=convert(char(10),GetDate(),120)
 
后退
顶部