问题1:时间变量应该怎么赋值
DECLARE
arg date;
begin
  arg := '23:23:23';   --报错  应该怎么改啊
end;
问题2: 这样问什么报错
declare 
arg date;
begin
arg:=sysdate;
select arg from dual;
end;我 select sysdate from dual 为什么就不报错,,上面这样写就报错呢 ,, 应该怎么改呢?????????

解决方案 »

  1.   

    问题1  还是搞不懂    我想加上小时,分钟,秒怎么加 DECLARE
    arg date;
    begin
      arg := '23:12:23 23:23:23';
      dbms_output.put_line(arg);
    end;这样写报错啊!!!!!!!!!!
      

  2.   


    --格式化一下
    DECLARE
    arg date;
    begin
    arg := to_date('23:23:23','hh24:mi:dd'); 
    dbms_output.put_line(arg);
    end;
    /
      

  3.   

    不可以這樣寫,mssql才可以這樣寫
    begin .. end中的select ..必醃有into 或是遊標的select,不可以用來直接顯示記錄的你可以select to_date('23:23:23','hh24:mi:dd') into arg from dual;
    然後dbms_output.put_line(arg);  
      

  4.   


    declare
    arg date;
    begin
    select sysdate into arg from dual;    
    dbms_output.put_line(to_char(arg,'yyyy-mm-dd hh24:mi:ss')); 
    --加1小時
    arg := arg+1/24;
    dbms_output.put_line(to_char(arg,'yyyy-mm-dd hh24:mi:ss'));    
    --加1分鍾
    arg := arg+1/(24*60);
        dbms_output.put_line(to_char(arg,'yyyy-mm-dd hh24:mi:ss'));  
    --加1秒鍾
    arg := arg+1/(24*60*60);
        dbms_output.put_line(to_char(arg,'yyyy-mm-dd hh24:mi:ss'));      
    end;
    /
      

  5.   

    declare
    arg date;
    begin
    select sysdate into arg from dual;    
    dbms_output.put_line(to_char(arg,'yyyy-mm-dd hh24:mi:ss')); 
    --加1小時
    arg := arg+1/24;
    dbms_output.put_line(to_char(arg,'yyyy-mm-dd hh24:mi:ss'));    
    --加1分鍾
    arg := arg+1/(24*60);
        dbms_output.put_line(to_char(arg,'yyyy-mm-dd hh24:mi:ss'));  
    --加1秒鍾
    arg := arg+1/(24*60*60);
        dbms_output.put_line(to_char(arg,'yyyy-mm-dd hh24:mi:ss'));      
    end;
    /