修改sqlplus中显示时间日期的格式

原 修改sqlplus中显示时间日期的格式https://blog.csdn.net/tianlesoftware/article/details/5224346版权声明: https://blog.csdn.net/tianlesoftware/article/details/5224346
  在数据库里查询数据的时候,我们经常会遇到一些和日期时间格式的问题,比如显示语言,显示格式等。可能数据在数据库里面存放的格式是:YYYY-MM-DD HH24:MI:SS, 但我们查询出来的却是 22-1月-10, 第一反应可能是字符集出了问题。 其实还有一个原因就是系统环境变量没有设置,下面我们就来看下有关这个的配置问题。
  1.  在session 中修改
  1. 1 中英文的切换
SQL> alter session set NLS_DATE_LANGUAGE='SIMPLIFIED CHINESE';
  会话已更改。
  SQL> select sysdate from dual;
  SYSDATE
--------------
22-1月 -10
  SQL> alter session set NLS_DATE_LANGUAGE='AMERICAN';
  会话已更改。
  SQL> select sysdate from dual;
  SYSDATE
------------
22-JAN-10
  SQL>
  1.2 时间格式的切换
  SQL> alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
  会话已更改。
  SQL> select sysdate from dual;
  SYSDATE
-------------------
2010-01-22 14:30:21
  SQL>


2. 在操作系统中设置相关环境变量


2.1 windows 平台

C:> SET NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS
C:> SET NLS_DATE_LANGUAGE=AMERICAN
C:>SEET NLS_DATE_LANGUAGE=SIMPLIFIED CHINESE;
  注意:这里YYYY-MM-DD HH24:MI:SS不能加引号,但在unix系统中要加

SQL> select sysdate from dual;
SYSDATE
-------------------
2010-01-22 14:33:21


这样改了以后只对当前的控制台窗品有效,如果不想每次都设置,就修改系统/用户环境变量,新增一个变量,比如nls_date_format,值为YYYY-MM-DD HH24:MI:SS。 就可以了。
  2.2 Linux 平台
$export  NLS_DATE_FORMAT=”YYYY-MM-DD HH24:MI:SS”
$export  NLS_DATE_LANGUAGE=”AMERICAN”
$export  NLS_DATE_LANGUAGE=”SIMPLIFIED CHINESE”
  注:在unix系统中要加引号
  Export 只对当前session 有效,如果要长期保存,就需要修改.bash_profile 参数,比如Oracle用户的,/home/oracle/.bash_profile, 在该文件中加入相关参数以后就可以了。
  NLS_DATE_FORMAT=”YYYY-MM-DD HH24:MI:SS”; 
export NLS_DATE_FORMAT;
NLS_DATE_LANGUAGE=”AMERICAN”; 
      export NLS_DATE_LANGUAGE;
NLS_DATE_LANGUAGE=”SIMPLIFIED CHINESE”;
  export NLS_DATE_LANGUAGE;
  补充:
修改时间日期的格式并不单是显示上的问题,而是在内部存储的值也会被覆盖:

SQL> select to_date(to_char(sysdate,'yyyy-mm-dd')) from dual;
select to_date(to_char(sysdate,'yyyy-mm-dd')) from dual
               *
ERROR at line 1:
ORA-01861: literal does not match format string

在没有修改环境变量或session参数时,这个语句是无法执行的。修改后可以执行:
SQL> select to_date(to_char(sysdate,'yyyy-mm-dd')) from dual;

TO_DATE(TO
----------
2010-1-22

注:把参数NLS_DATE_FORMAT设置成yyyy-mm-dd,查询的过滤条件中date类型的字段就可以跟日期控件生成的时间字符串直接比较了,非常方便的,如果对查询速度要求高,可以给日期类型的字段创建一个基于函数的索引。
   ------------------------------------------------------------------------------
QQ: 492913789
Email: [email protected]
Blog: http://www.cndba.cn/dave
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满);   DBA2 群:62697977(满)   DBA3 群:62697850(满)  
DBA 超级群:63306533(满);  DBA4 群: 83829929  DBA5群: 142216823   
DBA6 群:158654907  聊天 群:40132017   聊天2群:69087192
--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请https://img-blog.csdnimg.cn/20190217105710569.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTEwNzgxNDE=,size_16,color_FFFFFF,t_70《算法导论 第三版英文版》_高清中文版.pdf
https://pan.baidu.com/s/17D1kXU6dLdU0YwHM2cvNMw
《深度学习入门:基于Python的理论与实现》_高清中文版.pdf
https://pan.baidu.com/s/1IeVs35f3gX5r6eAdiRQw4A
《深入浅出数据分析》_高清中文版.pdf
https://pan.baidu.com/s/1GV-QNbtmjZqumDkk8s7z5w
《Python编程:从入门到实践》_高清中文版.pdf
https://pan.baidu.com/s/1GUNSg4mdpeOf1LC_MjXunQ
《Python科学计算》_高清中文版.pdf
https://pan.baidu.com/s/1-hDKhK-7rDDFll_UFpKmpw

你可能感兴趣的:(others)