我建了一个游标从源表里面取了一个时间字段,这个时间是精确到时分秒的,也就是如同2009-1-5 14:36:38这样的格式,现在我从游标里面fetch 出来后
     into到一个时间变量里面就只有前面的日期了即2009-1-5 ,没有后面的时分秒,而我希望能时分秒也取到这个变量里面,应该怎么做呢,请大家帮帮忙!谢谢啦!

解决方案 »

  1.   

    select to_date(字段,'yyyy-mm-dd hh:mm:ss') as xxxx from 表;
    fetcht xxxx into xxxx,xxxx
      

  2.   

    into 后边的变量定义成date类型,定义游标的时候注意一下将其转化成'yyyy-mm-dd hh:mm:ss'应该没有问题.
      

  3.   

    楼主怎么看出取出的变量不含时分秒?假设取出的date型变量为vDate,那么可以用
    dbms_output.put_line(to_char(vDate,'yyyy-mm-dd hh24:mi:ss'));来打印出看看。
      

  4.   

        发表于:2009-03-19 11:43:021楼 得分:0 
    select to_date(字段,'yyyy-mm-dd hh:mm:ss') as xxxx from 表; 
    fetcht xxxx into xxxx,xxxx 
    发表于:2009-03-19 12:56:453楼 得分:0 
    into 后边的变量定义成date类型,定义游标的时候注意一下将其转化成'yyyy-mm-dd hh:mm:ss'应该没有问题. --源表中的这个字段本身就是date型的。而且into的目标也是date型的
    发表于:2009-03-19 13:04:104楼 得分:0 
    楼主怎么看出取出的变量不含时分秒? 假设取出的date型变量为vDate,那么可以用 
    dbms_output.put_line(to_char(vDate,'yyyy-mm-dd hh24:mi:ss'));来打印出看看。 
    --我起初是看过程处理的结果不太对,后来单步调试看变量的值结果是时间字段只取到了年月日具体的时间点没取到 
      

  5.   

      代码是这样的    v_sql := 'select a.nbr1,a.nbr2,a.start_date,a.event_id
        from ' || tablename || ' a ' ||
        'order by a.nbr1,a.nbr2,a.start_date';
        open v_ser for v_sql;
        loop
        fetch v_ser
         into V_NBR1, V_NBR2,V_START_DATE,V_EVENT_ID;现在就是start_date字段的值取出来给V_START_DATE的时候没了具体时间点只有日期
      

  6.   

    不会吧,我试了下,如果是用游标插入或修改,DATE型都不会有精度损失,你用dbms_output.put_line()来查看的话,只会显示年月日,但是你在dbms_output.put_line(to_char(v_date,'yyyy-mm-dd hh24:mi:ss'))就会显示出完整的日期形式.
      

  7.   

    可以首先设置会话的时间格式
    alter session ......................
      

  8.   


    这个,你的a.start_date有时分秒,取出来肯定是有时分秒的
      

  9.   

      谢谢大家啊!那个确实像我说的  后来START_DATE 变量改成TimeStamp类型好了