菜鸟求教:日期变量的格式问题(100分)

  • 主题发起人 主题发起人 sysd
  • 开始时间 开始时间
S

sysd

Unregistered / Unconfirmed
GUEST, unregistred user!
日期变量的格式好象不对,不知应该如何改,求各位老大指教,谢谢。

var
date01:TDateTime;
begin
date01:=now;
ADOQuery1.Active:=false;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from Table where date='''+date01+'''');
ADOQuery1.Active:=true;
end;


[错误] Unit1.pas(36): Incompatible types: 'String' and 'TDateTime'
[致命错误] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
 
查一下这个函数怎么用
DateTimeToString();
可能对你有帮助 
 
同意楼上
 
不是函数转换的问题,是日期变量在下面这句话中的格式问题,
ADOQuery1.SQL.Add('select * from Table where date='''+date01+'''');
哪位老大能给改改?
 
改成:
ADOQuery1.SQL.Add('select * from Table where date='+datatimetostring(date01));
 
改成:
ADOQuery1.SQL.Add('select * from Table where date='''+datetimetostring(date01)+'''');
如果你要对date01中的日期格式化的话,可以用formatdatetime('YYYY-MM-DD',date01)......
如果你用的是ACCESS则对日期要用#号作为分离符
ADOQuery1.SQL.Add('select * from Table where date=#'+datetimetostring(date01)+'#');
 
谢谢楼上的二位老大,对不起忘了说了,我的date字段是DateTime类型的,按二位老大的改了还是不行,请老大再指教。
 
ADOQuery1.SQL.Add('select * from Table where date='+formatdatetime('yyyy-mm-dd hh:mm:ss',date01));
或者你可以用参数形式
ADOQuery1.SQL.Add('select * from Table where date=:date');
ADOQuery1.Parameters.ParamByName('date1').Value:=date01;
ADOQuery1.open;
 
谢谢xinjinren老大,能运行了,100分送上,
不过,老大,运行结果不对啊,如果是大于任何一个日期,结果是全部记录,如果是小于或等于任何一个日期,结果是空记录,为什么?
 
具体情况你到QQ上找我吧272612622[:)]
 

Similar threads

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