1)Date类可以存储年月日,和小时,分钟,秒?
2)存入的是年月日,和小时,分钟,秒。
    SELECT TO_CHAR(mydate,'yyyy-mm-dd HH24:MI:SS') from tbl ;

解决方案 »

  1.   

    请问:lianhg(lianhg) :
    我现在是在存储过程中定义的一个Date类型的变量v_date,然后
    v_date:=to_date('2003-12-3 5:12:4','yyyy-mm-dd HH24:MI:SS'); 可是执行完后v_date只有2003-12-3,可是小时,分钟,秒没有了 我不是表中的Date类型的字段,我的问题出在哪里? 如可解决?快帮我看看:要不然我的好多存储过程都改写
      

  2.   

    1)应该是显示的问题吧
    2)如果定义的是DATE型的,Date可以存储年月日,和小时,分钟,秒
    3)用 SELECT TO_CHAR(mydate,'yyyy-mm-dd HH24:MI:SS') from tbl ; 测试表中
       的数据
      

  3.   

    从表中选取数据来赋值我也试过,小时,分钟,秒没有了,也不显示的问题, 我在Toad调试过Date 类型的变量,就是没有小时,分钟,秒,
      

  4.   

    CREATE OR REPLACE PROCEDURE Auto_CLJS IS
    tmpVar NUMBER;
    /******************************************************************************
       PURPOSE:   自动潮流计算   REVISIONS:
       Ver        Date        Author           Description
       ---------  ----------  ---------------  ------------------------------------
       1.0        2003-10-17   Fred Zhang       1. Created this procedure.******************************************************************************/
    Min_CBRQ date; ---最小的抄表时间
    Max_CBRQ tameter_rt.CBRQ%type; ---最大的抄表时间
    v_CBRQ Date; --抄表时间
    v_count integer;--电表是否有数据
    BEGIN
      /*看电表运行表中是否有数据*/
      exec alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
      Min_CBRQ:=to_date('2003-12-3 05:12:04','yyyy-mm-dd HH24:MI:SS');
       select count(*) into v_count from tameter_rt;
       /*如果有数据,则计算*/
      if v_count <>0 then
           CLJS_Ameter_RT_prepare;
           CLJS_Prepare;
           select distinct max(CBRQ),min(CBRQ) into Max_CBRQ,Min_CBRQ from tameter_rt;
           v_CBRQ:=Min_CBRQ;
           while v_CBRQ<Max_CBRQ loop
                CLJS_Main(v_CBRQ);
        v_CBRQ:=v_CBRQ+15/(24*60);
            end loop;
    /*计算完成后电表数据存档*/
    Ametdata_To_Arch;
    else
       /*如果没有数据,则不计算*/
       null;
       end if;
       tmpVar := 0;
       EXCEPTION
         WHEN NO_DATA_FOUND THEN
           NULL;
         WHEN OTHERS THEN
           -- Consider logging the error and then re-raise
           RAISE;
    END Auto_CLJS;/
      

  5.   

    我在存储过程中加了
    exec alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
    或者
    alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
    可是编译有错
      

  6.   

    请问:lianhg(lianhg) :还在吗? 我在等你解答。
      

  7.   


    exec alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';改为:
     lv   varchar2(100);
    lv :='alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss''';
    execute immediate lv;
      

  8.   

    我觉得不是nls_date_format的问题。
    你可以跟踪那个时间字段:
       dbms_output.put_line(to_char(Min_CBRQ,'YYYY-MM-DD HH24:MI:SS'));
      

  9.   

    谢谢lianhg(lianhg):问题搞定了,给分。
    不过我想可不可以在数据库库设定某个参数来解决这个问题呢?
    要不然,在每一过程中都写这几行代码,这不太好吧!
      

  10.   

    1)真是nls_date_format的问题?!
      

  11.   

    TO All;
    我明白了:是我的Toad设定有问题!
      

  12.   

    lianhg(lianhg) 真是高手!!!