Chinaunix首页 | 论坛 | 博客
  • 博客访问: 412170
  • 博文数量: 77
  • 博客积分: 2303
  • 博客等级: 大尉
  • 技术积分: 808
  • 用 户 组: 普通用户
  • 注册时间: 2004-11-30 09:15
文章存档

2015年(1)

2013年(3)

2012年(2)

2011年(46)

2009年(4)

2008年(2)

2005年(12)

2004年(7)

我的朋友

分类: Oracle

2011-02-14 14:00:29

工作中碰到用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来修改

  1. SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
  2. SQL> select sysdate from dual;

  3. SYSDATE
  4. -------------------
  5. 2004-12-21 14:44:24

2.在OS中设置nls_date_format
 打开一个控制台窗口 

  1. C:>SET NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS //注意:这里YYYY-MM-DD HH24:MI:SS不能加引号,但在unix系统中要加
  2.  
  3.  SQL> select sysdate from dual;

  4. SYSDATE
  5. -------------------
  6. 2004-12-21 14:45:44

这样改了以后只对当前的控制台窗品有效,如果不想每次都设置,就修改系统/用户环境变量,新增一个nls_date_format变量,值为YYYY-MM-DD HH24:MI:SS
打开一个控制台窗口

  1. SQL> select sysdate from dual;

  2. SYSDATE
  3. -------------------
  4. 2004-12-21 14:46:15

这样在spool中直接select * from tabs就行了。

阅读(607) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~