在tquery.sql中,去insert 一个DBF表,日期型字段如何处理?(100分)

  • 主题发起人 主题发起人 whistleing
  • 开始时间 开始时间
W

whistleing

Unregistered / Unconfirmed
GUEST, unregistred user!
原想这样做:
with query1 do

begin
close;
sql.clear;
sql.add('insert into aaa (date_field1) values (to_date(''20000101'',''yyyymmdd'') )');
execsql;
end;
运行时提示:无to_date()函数!
换过ctod也不行!
 
cast ("1/2/1999" as date)
1999年1月2日
 
用FUNCTION STRTODATE()... 不就行了
 
用动态生成参数:
query1.sql.add('insert into aaa (date1) values(:date1)');
query1.parambyname('date1').asdate:=strtodate('1999-01-01');
query1.execsql;
 
InterBase 没有专用的日期函数,只能通过 Cast()函数进行转换,pipi 讲的是对的,interbase 中日期的表示法可以多种,如:'Jan-31-1990' '1-13-1990' '1.31.1990' '1 31 1990'等,但都是按照 月-日-年 的顺序, 输出时的日期格式则是另一回事,视window的设置而定,比如我的机器中就表示为'1990.1.31',但这只是输出的格式,和输入格式毫无关系。
另外,你在 SQL 语句中想用 To_Date 等的函数,压根就是错误的,应该参照 interbase 的语句手册,而不是凭空想象出来一个,除非你自己做了 UDF,才可以这么用
 
后退
顶部