SELECT MAX(BHSJ) INTO v_sczxsj FROM B_ASJ_ZFJD_BHJL;
为什么变量里面的值只有日期,而没有时分秒呢?

解决方案 »

  1.   

    SELECT to_char(MAX(BHSJ),'yyyy-mm-dd hi24:mm:ss') INTO v_sczxsj FROM B_ASJ_ZFJD_BHJL
      

  2.   

    前面那个BHSJ是有时分秒的,v_sczxsj是date型的啊
      

  3.   

    为什么要写得这么麻烦呢?Oracle他into的时候不是就会丢失时分秒的吧?
      

  4.   

    你执行下select to_char(v_sczxsj,'yyyy-mm-dd hh24:mi') from dual试试
    如果BHSJ里有时分秒的话,v_sczxsj里也应该有
    SQL> declare
      2   d date;
      3  begin
      4   select to_date('200905051230','yyyymmddhh24mi') into d from dual;
      5   dbms_output.put_line(to_char(d,'yyyy-mm-dd hh24:mi'));
      6  end;
      7  /PL/SQL 过程已成功完成。SQL> set serveroutput on
    SQL> /
    2009-05-05 12:30PL/SQL 过程已成功完成。SQL> 
      

  5.   

    默认的格式是由nls_date_format来确定的。在注册表的KEY_LOCAL_MACHINE->SOFTWARE->ORACLE->KEY_OraDb10g_home1
    添加字串值NLS_DATE_FORMAT.将其值设为YYYY-MM-DD-HH24:MI:SS.
      

  6.   

    SQL> declare
      2     d date;
      3    begin
      4    SELECT  MAX(BHSJ) INTO d FROM B_ASJ_ZFJD_BHJL;
      5    dbms_output.put_line(to_char(d,'yyyy-mm-dd hh24:mi:ss'));
      6   end;
      7  /
     
    PL/SQL procedure successfully completed
     
    SQL> set serveroutput on
    SQL> /
     
    2009-05-05 11:14:26
     
    PL/SQL procedure successfully completed
    是没有丢失的,谢谢各位