oracle时间问题
declare   DateValue   date;    
 begin    
             select   sysdate   into   DateValue   from   dual;    
             dbms_output.put_line(to_char(DateValue   -   1)); 
 end; 
 为什么我这样写只显示日期   22-8月   -07,    
 一定要写成 
 dbms_output.put_line(to_char(DateValue   -   1,    'YYYY-MM-DD   HH24:MI:SS '));吗?   
 to_char( '2007-8-23   10:23:14 ',    'YYYY-MM-DD   HH24:MI:SS ')为什么报错(有太多 "to_char "   说明与此次调用相匹配)?   
 还有我想只做时间的比较,不要日期,应该怎么写?
------解决方案--------------------to_char里面的参数必须为非字符串类型的值:     
 SQL>  select to_char(to_date( '2007-8-23 10:23:14 ', 'YYYY-MM-DD HH24:MI:SS '),  'YYYY-MM-DD HH24:MI:SS ') from dual 
   2  ;   
 TO_CHAR(TO_DATE( '2007-8-2310:2 
 ------------------------------ 
 2007-08-23 10:23:14   
 SQL>  select to_char(to_date( '2007-8-23 10:23:14 ', 'YYYY-MM-DD HH24:MI:SS '),  'HH24:MI:SS ') from dual;   
 TO_CHAR(TO_DATE( '2007-8-2310:2 
 ------------------------------ 
 10:23:14   
 SQL>  select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS ') from dual;   
 TO_CHAR(SYSDATE, 'YYYY-MM-DDHH2 
 ------------------------------ 
 2007-08-22 22:58:30   
 如果比较时间:   
 where to_char(to_date( '2007-8-23 10:23:14 ', 'YYYY-MM-DD HH24:MI:SS '),  'HH24:MI:SS ') >  to_char(sysdate,  'HH24:MI:SS ')     
 如果比较想日期+时间:  
 where to_date( '2007-8-23 10:23:14 ', 'YYYY-MM-DD HH24:MI:SS ') >  sysdate   
 注意to_date里面的值为非date类型就可以了 ^_^