数据库里的表里的时期时间字段为yyyy-mm-dd hh:mm:ss,用DateTimePicker作为日期的查询条件。我的语法如下:adoquery1.SQL.Add('select * from tsyslog where to_char(logtime,'yyyy-mm-dd') = '''+DateTimePicker+''''); 为什么会通不过。
枫叶,,,我按你的办法做过了,但过程中总是报错, 运行过程中,ADOQUERY1.SQL.TEXT为'select * from tsyslog where datediff(day,logtime,'2007-08-09')=0 然后报ORA-01797:此运算符后面必须跟ANY或者ALL 这样错的怎么改呀???请指点 谢谢
adoquery1.SQL.Add( 'select * from tsyslog where to_char(logtime, 'yyyy-mm-dd ') = ' ' '+DateTimePicker.date+ ' ' ' ');
adoquery1.SQL.Add(S);
oracle:
... tochar(日期,''yyyy-mm-dd'')='+FormatDateTime('yyyy-mm-dd',DateTimePicker.Date);
sqlserver/sybase:
... 日期='''+FormatDateTime('yyyy-mm-dd',DateTimePicker.Date)+'''';
access:
... 日期=#'+FormatDateTime('yyyy-mm-dd',DateTimePicker.Date)+'#';
关键是DateTimePicker1不能获取精确到时分的时间,,,所以,,在查询以前可以付值过去或者以输入的方式都可以,,,例如DateTimePicker1.datetime:=now;在进行查询,,以获取精确的时间,
adoquery1.SQL.Add('select * from tsyslog where logtime=:logtime');
ADOQuery1.Parameters[0].Value :=DateTimePicker1.datetime;
需要进行FormatDateTime进行转换成格式化字符。
其它两个是运行过程中报的错误
运行过程中,ADOQUERY1.SQL.TEXT为'select * from tsyslog where datediff(day,logtime,'2007-08-09')=0
然后报ORA-01797:此运算符后面必须跟ANY或者ALL
这样错的怎么改呀???请指点
谢谢