Acccess中的SQL问题( General SQL error 时间日期格式无效(null)) (20分)

  • 主题发起人 主题发起人 lcl800
  • 开始时间 开始时间
L

lcl800

Unregistered / Unconfirmed
GUEST, unregistred user!
Acccess中的SQL问题( General SQL error 时间日期格式无效(null))
下列两个问题均只要日期,不要时间!
问题1:
下述SQL语句如果连接的是paradox数据库,运行得很好,现在我把后台数据库改成了
Access,运行时出现错误:
General SQL error
[microsoft][ODBC Microsoft Access 驱动程序]时间日期格式无效(null)
百思不得其解,请问如何解决?
with query1 do begin
_quer:='update fullstore set tdate = 1 WHERE ( tkrq>=:_sczkrq) ';
Close;
SQL.Clear;
SQL.Add(_quer);
ParamByName('_sczkrq').AsDate:=datetimepicker1.date;
execSQL;
end;

问题2:
下述SQL语句如果连接的是paradox数据库,运行得很好,现在我把后台数据库改成了
Access,运行时期望02.05.26 结果却是02.05.26 20:25:22 其中20:25:22也不是当前时间
无论那一天,什么时候写入都是这个时间。
With DataModule1.FullStore do begin
Edit;
fieldbyname('zkrq').asDateTime:=DateTimePicker1.Date;
post;
End;





 
你可以先在sql explore中先对一个字段进行调试,知道他们的区别就行了啊
 
DateTimePicker1.Datetime;
 
1.判断一个日期为空:用datevalue函数转换,试试datevalue(tkrq) is null
2.fieldbyname('zkrq').asstring:=formatdatetime('yy-mm-dd',DateTimePicker1.Datetime);
 
1.ACCESS中的日期界定符为#,将SQL语句改成如WHERE 日期=#2002-05-01#试试
2.同意BOOK523,若用时间再加上
fieldbyname('zkrq').asstring:=formatdatetime('yy-mm-dd hh:mm:ss',DateTimePicker1.Datetime);
 
1.试试这个:parambyname('_sczkrq').asstring := formatdatetime('yyyy-mm-dd', datetimepicker1.date);
2.把datetimepicker1的time中的数据删除,系统会自动附值为0:00!
 
to xxhadsg
我源程序中使用的是datetimepicker控件,代码需要写成如下形式吗?
with query1 do begin
close;
SQL.clear;
SQL.ADD('update fullstore set tdate = 1 whERE tkrq>=#'
+datetostr(datetimepicker1.Date)+'# and (not (tkrq is null))');
execSQL;

end;

 
2.DateTimePicker的Kind属性是否设为dtkdate,date属性需要通过代码赋值:
DateTimePicker1.date:=now;
 
ACCESS数据库中得日期/时间字段只接受日期时间类型。你可以在日期上加一个时间
“00:00:00”就可以了,用DateTimePicker1控件得都是加时间得。没有别得办法(
我知道得),建议你用字符串类型,这样就可以输入年了,随心所欲嘛!!!
 
多人接受答案了。
 

Similar threads

后退
顶部