求救:关于日期的比较大小 (100分)

  • 主题发起人 主题发起人 chur
  • 开始时间 开始时间
C

chur

Unregistered / Unconfirmed
GUEST, unregistred user!
query2.Databasename:=getcurrentdir+'/db';
ShortDateFormat := 'yyyy-mm-dd';
s1:=datetostr(DateTimePicker1.date);
query2.close;
query2.sql.clear;
query2.sql.add('select * from sacem.db');
query2.sql.add('where bmmc="'+bmmc1+'"');
query2.sql.add('and name="'+ygmc1+'"');
query2.sql.add('and vdate>="'+s1+'"');
query2.open;
数据库中的vdate是Alpha模式,所以提取出来时string,这样的话,就和s1都是string,
无法比较大小,请问在不改变vdate的类型情况下,如何解决这个问题?
 
SQL语法中有转换类型的函数,好像是Cast还是Convert你查一下帮助。
 
将string中的各个字段分别拷贝出来,再进行比较就可以了
 
首先,你要确定s1和vdate的格式要一致
也就是说如果用DateTimeFormat('yyyy-mm-dd',DateTimePicker1.date)取得s1的话,
那vdate的格式也要是'yyyy-mm-dd',那你的语句就没有错了。
 
to YoungSun
我查不到
 
如果不改变字段类型的话,恐怕没有一个通用的办法,例如在Paradox中可以用:
select * from mytable where adate>'2001-01-01'
而在Oracle中可以采取以下两种方式:
select * from pasctr.ctrsucc where ctrsucc_stmp
>'01-JAN-02'
select * from pasctr.ctrsucc where ctrsucc_stmp
>to_date('2001-01-01','yyyy-mm-dd')
而对于其它很多数据库,第一种方式都不可行,后两种就更不可能了。
 
thanks a lot
 
后退
顶部