sqlplus中改变日期的输出格式

发表于:2007-06-22来源:作者:点击数: 标签:
工作中碰到用spool导出数据,其中有日期格式的字段,因为format了各列,就不想用to_char把日期再format了,而且用to_char的话还要把要所有的列都写在select语句中。.................... 工作中碰到用spool导出数据,其中有日期格式的字段,因为format了各列

   
  工作中碰到用spool导出数据,其中有日期格式的字段,因为format了各列,就不想用to_char把日期再format了,而且用to_char的话还要把要所有的列都写在select语句中。....................
  

  工作中碰到用spool导出数据,其中有日期格式的字段,因为format了各列,就不想用to_char把日期再format了,而且用to_char的话还要把要所有的列都写在select语句中。win下默认的格式为DD-MM-yy ,如下:
  SQL>select sysdate from dual;
  
  SYSDATE
  ----------
  21-12月-04
  
  数据库中的日期字段中的格式为yyyy-mm-dd hh24miss,导出的数据中也要这样的格式,设置nls_date_format就可以实现,如下:
  
  1.用alter session来修改
  
  SQL>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
  SQL> select sysdate from dual;
  
  SYSDATE
  -------------------
  2004-12-21 14:44:24
  
  2.在OS中设置nls_date_format
  
  打开一个控制台窗口
  C:>SET NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS //注意:这里YYYY-MM-DD HH24:MI:SS不能加引号,但在unix系统中要加
  
  SQL> select sysdate from dual;
  
  SYSDATE
  -------------------
  2004-12-21 14:45:44
  
  这样改了以后只对当前的控制台窗品有效,如果不想每次都设置,就修改系统/用户环境变量,新增一个nls_date_format变量,值为YYYY-MM-DD HH24:MI:SS
  
  打开一个控制台窗口
  SQL> select sysdate from dual;
  
  SYSDATE
  -------------------
  2004-12-21 14:46:15
  
  这样在spool中直接select * from tabs就行了。

原文转自:http://www.ltesting.net