各位高手:
  本人目前正在做一个将access数据库中的一个表的数据转到oracle中的程序,遇到了一个问题,卡壳了,请各位高手指点,一定给分,不够再加,问题如下:
  access数据表结构
  cardfile(holderno 文本,date 日期/时间,time 文本)
  现在我要做的是将这个表中的新数据提取出来插入到oracle表中,也就是说要把date和time的值同我存放在.ini文件中的时间相比较。
  我的quyery中的sql语句是这样写的
  select * from cardfile where date>=:P_date and time>:P_time
    在程序中我把P_date和P_time分别赋值如下
  ParamByName('P_date').AsDate :=strtodate(datestr) ;
    ParamByName('P_time').AsString := timestr ;
    但是在我执行open的时候,提示:时间日期格式无效
  我不太清楚是什么意思,但是access中的date字段的值在access中显示是这样的:2002-11-5,我认为是“短日期”,而datestr变量的值是由datetostr(一个日期型变量)得来的,我就不知道strtodate(datestr)得出的日期是不是短日期了。
  请各位高手帮忙分析一下,顺便问一下,access日期格式转换的函数是什么??
还有,我怎么样在一个datetime类型的变量中提取出一个它的日期值的一个变量呢???
  请各位高手帮忙

解决方案 »

  1.   

    呵呵,什么也没看到~
    各位高手:
      本人目前正在做一个将access数据库中的一个表的数据转到oracle中的程序,遇到了一个问题,卡壳了,请各位高手指点,一定给分,不够再加,问题如下:
      access数据表结构
      
    就这些!
      

  2.   

    你可以不管类型:
    ParamByName('P_date').value:=strtodate(datestr) ;
    ParamByName('P_time').value:= timestr ;
      

  3.   

    回复人: cg1120(代码最优化-§为这世界,添些美丽色彩§) ( ) 信誉:112  2002-12-09 11:59:00  得分:0 
     
     
      你可以不管类型:
    ParamByName('P_date').value:=strtodate(datestr) ;
    ParamByName('P_time').value:= timestr ;  
    cg1120的方法我已经试过了,还是不成的 
      

  4.   

    好像在access中存的日期不管是什么型的,取出来不format一下,都会是常规的那种,带有小时分钟的那种,我在asp.net中的时候就遇到这个问题,数据库中是中日期,直接取出来都带有小时,你用formatdatetime试一试
      

  5.   

    试试用sqlserver2000的DTS,另外oracle中的数据类型设的兼容一些。
      

  6.   

    1、access的日期表示格式很特殊。日期需要用#2002-12-8#这样来表示。
    还是直接写sql语句吧。
    adoquery1.sql.add('select * from cardfile where date>=#'+strtodate(datestr)+'# and time>#'+timestr+'#');
    2、用datepart函数 datepart("yyyy",#2002-12-8#)另外可以使用函数DateDiff("y",datefield,'2002-12-8')在日的精度上做时间比较。
      

  7.   

    在access数据库中时间是浮点数,所以strtodate即可。ParamByName('P_date').value := StrToDate(datestr)+2;
    ParamByName('P_time').value := StrToTime(timestr);注意delphi的时间好像比microsoft的时间晚两天,所以要加2.
      

  8.   

    各位,我想这样,我把这个access发给你们,你们看看能不能帮我完成这个功能,就是如何编写一个query中的sql,使它检索的数据是在限定时间以后的。
    数据表名称是entryexit,需要比较的字段是date,time,感兴趣的朋友可以加我的qq,或者留下你的信箱,谢谢大家