`

修改PL/SQL日期显示格式

 
阅读更多


Oracle中的TIMESTAMP数据类型很多人用的都很少,所以即使最简单的一个查询返回的结果也会搞不清楚到底这个时间是什么时间点。

例如:

27-1月 -08 12.04.35.877000 上午

这个时间到底是几点呢?中午12:04分,那就错了,其实使用to_char函数转换后得到如下结果:

2008-01-27 00:04:35:877000

说明这个时间是凌晨的00:04分,而不是中午的12:04分。

发生此问题的原因如下:

示例:

SELECT TO_CHAR(TO_DATE('2008-01-29 00:05:10', 'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh:mi:ss am') FROM DUAL

首先把一个00:05分的时间进行转换,按照'yyyy-mm-dd hh:mi:ss am'格式进行转换,得到的结果是:

2008-01-29 12:05:10 上午

这说明Oracle在进行日期转换成字符串的过程中,如果小时转换使用的是12进制的格式,则凌晨00点会被认为是上午12点,然后才是上午1点、2点、3点。。。

oracle中12进制的计时不是从0-11,而是从1-12的,所以如果是夜里零点,你不能记成1点,那只能记成12点了。(不知道这是不是跟洋人的习惯有关?)


现在我们来看一下Oracle中对TIMESTAMP的处理:

SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_TIMESTAMP_FORMAT'

返回结果DD-MON-RR HH.MI.SSXFF AM,可以看到,这里默认情况下,使用的TIMESTAMP的格式是12进制的小时。

问题到这里已经找到根源了。


解决方法:

找到注册表:


[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]
。。。
"NLS_TIMESTAMP_FORMAT"="YYYY-MM-DD HH24:MI:SS:FF6
。。。

在注册表中设置Oracle环境变量的地方(也就是设置ORACLE_HOME的地方)设置NLS_TIMESTAMP_FORMAT的格式(也就是创建这样一个字符串项,然后设置它的值为你转换需要的掩码,我一般设置为YYYY-MM-DD HH24:MI:SS:FF6),然后关掉PL/SQL DEVELOPER,重新登录,如果没有效果,重启电脑。


pl/sql developer中读取的是注册表中设置的NLS_TIMESTAMP_FORMAT格式,那么只要在注册表中设置Oracle环境变量的地方(也就是设置ORACLE_HOME的地方)设置NLS_TIMESTAMP_FORMAT的格式(也就是创建这样一个字符串项,然后设置它的值为你转换需要的掩码,我一般设置为YYYY-MM-DD HH24:MI:SS:FF6),然后关掉PL/SQL DEVELOPER,再继续登陆,以后我们看到的TIMESTAMP时间就会自动转换成大家需要的格式了。

 

另一种方式http://oracle.chinaitlab.com/PLSQL/38364.html

 

或者直接修改 pl/sqldeveloper 里的 NLS options 的设置

分享到:
评论

相关推荐

    PL/SQL Developer8.04官网程序_keygen_汉化

    变量声明与赋值 PL/SQL主要用于数据库编程,所以其所有的数据类型跟Oracle数据库里的字段类型是一一对应的,大体分为数字型、布尔型、字符型和日期型。这里简单介绍两种常用数据类型:number、varchar2。  number ...

    Oracle PL/SQL实例精讲--使用表,课后答案

    Oracle PL/SQL实例精讲第五版--里面的使用表,课后答案,以及书中的案例,文件里有3个包。 很难受,本来只是想1积分的,居然这么高,没法修改。

    PL/SQL 基础.doc

    PL/SQL 基础,一个不错的 PL/SQL 参考手册。内容预览: ---- 第一章 PL/SQL 简介 ---- 1. Oracle应用编辑方法概览 1) Pro*C/C++/... : C语言和数据库打交道的方法,比OCI更常用; 2) ODBC 3) OCI: C语言和...

    pl/sql操作手册

    8. 创建与修改非 PL/SQL 对象............................................................................................................51 8.1 表定义编辑器.................................................

    PLSQLDeveloper下载

     PL/SQL主要用于数据库编程,所以其所有的数据类型跟Oracle数据库里的字段类型是一一对应的,大体分为数字型、布尔型、字符型和日期型。这里简单介绍两种常用数据类型:number、varchar2。 number 用来存储整数和...

    pl sql developer 8 (用loader.exe 运行)

    解压和,运行Loader.exe,来启动 PL/SQL Developer...2, Loader.exe运行时将修改注册表中 PL/SQL Developer 的安装日期为“今天” 3, 每次都通过运行 Loader.exe 启动 PL/SQL Developer 资源来自网上,所以不需要资源分.

    Oracle 从入门到精通视频教程(11G版本)(ppt)

    PL/SQL中使用DML和DDL语言 PL/SQL中的异常 PL/SQL函数编写 第8章-游标,数据的缓存区 什么是游标 显示游标 隐式游标 第9章-视图,数据库中虚拟的表 什么是视图 视图的创建 操作视图数据的限制 视图的...

    orcale笔记

    20. pl_sql 4 1)需要在控制台打印数据的时候必须先执行:set serveroutput on; 4 2)简单例子: 4 3)打印乘法表 4 4)打印星号三角形 4 5)根据雇员工资分级显示税金。 4 6)使用CASE结构实现职务转换。 4 7)求:...

    数据库基础

    §1.3 SQL、SQL*Plus及 PL/SQL 25 §1.3.1 SQL和SQL*PLUS的差别 25 §1.3.2 PL/SQL语言 27 §1.4 登录到SQL*PLUS 27 §1.4.1 UNIX环境 27 §1.4.2 Windows NT和WINDOWS/2000环境 29 §1.5 常用SQL*PLUS 附加命令简介...

    Oracle8i_9i数据库基础

    §1.3 SQL、SQL*Plus及 PL/SQL 25 §1.3.1 SQL和SQL*PLUS的差别 25 §1.3.2 PL/SQL语言 27 §1.4 登录到SQL*PLUS 27 §1.4.1 UNIX环境 27 §1.4.2 Windows NT和WINDOWS/2000环境 29 §1.5 常用SQL*PLUS 附加命令简介...

    SQL21日自学通

    日期/时间函数66 ADD_MONTHS 67 LAST_DAY68 MONTHS_BETWEEN 69 NEW_TIME70 NEXT_DAY71 SYSDATE72 数学函数 72 ABS 73 CEIL 和FLOOR 73 COS COSH SIN SINH TAN TANH 73 EXP 75 LN and LOG75 MOD 76 POWER77 SIGN 77 ...

    Oracle.11g.从入门到精通 (1/2)

    1.4.2 PL/SQL部分 1.4.3 其他部分 第2章 Oracle在Windows平台上的安装与配置 2.1 Oracle通用安装器 2.2 Oracle数据库软件的安装 2.3 Oracle数据库软件的卸载 2.3.1 停止所有的Oracle服务 2.3.2 用OUI卸载所有的...

    Oracle.11g.从入门到精通 (2/2)

    1.4.2 PL/SQL部分 1.4.3 其他部分 第2章 Oracle在Windows平台上的安装与配置 2.1 Oracle通用安装器 2.2 Oracle数据库软件的安装 2.3 Oracle数据库软件的卸载 2.3.1 停止所有的Oracle服务 2.3.2 用OUI卸载所有的...

    PLSQL Developer用户指南

    16.17 用户界面 - 日期/时间 .......133 16.18 窗口类型 - 程序窗口 ........134 16.19 窗口类型 - SQL 窗口 ........136 16.20 窗口类型 - 测试窗口 ........138 16.21 窗口类型 - 计划窗口 ........138 16.22...

    Oracle11g从入门到精通

    第4章 Oracle PL/SQL语言及编程 4.1 PL/SQL简介 4.1.1 PL/SQL的基本结构 4.1.2 PUSQL注释 4.1.3 PL/SQL字符集 4.1.4 PL/SQL数据类型 4.1.5 PIJSQL变量和常量 4.1.6 PL/SQL语句控制结构 4.1.7 PL/SQL表达式 ...

    Oracle11g从入门到精通2

    第4章 Oracle PL/SQL语言及编程 4.1 PL/SQL简介 4.1.1 PL/SQL的基本结构 4.1.2 PUSQL注释 4.1.3 PL/SQL字符集 4.1.4 PL/SQL数据类型 4.1.5 PIJSQL变量和常量 4.1.6 PL/SQL语句控制结构 4.1.7 PL/...

    oracle database 11g 完整参考手册中文高清完整版part3

     第32章 pl/sql 简介  第33章 应用程序在线升级  第34章 触发器  第35章 过程、函数与程序包  第36章 使用本地动态sql 和dbms_sql  第37章 pl/sql 调整 第ⅴ部分 对象关系数据库  第38章 实现对象类型、对象...

    oracle database 11g 高清完整中文版part2

     第32章 pl/sql 简介  第33章 应用程序在线升级  第34章 触发器  第35章 过程、函数与程序包  第36章 使用本地动态sql 和dbms_sql  第37章 pl/sql 调整 第ⅴ部分 对象关系数据库  第38章 实现对象类型、对象...

    oracle database 11g完全参考手册 高清完整版part1 共3部分

     第32章 pl/sql 简介  第33章 应用程序在线升级  第34章 触发器  第35章 过程、函数与程序包  第36章 使用本地动态sql 和dbms_sql  第37章 pl/sql 调整 第ⅴ部分 对象关系数据库  第38章 实现对象类型、对象...

    非常全的oracle文档

    19.6. 日期时间格式参数 113 19.7. 分析函数 114 19.8. 通用函数 115 19.9. GROUP BY子句 116 19.10. HAVING子句 117 19.11. 实用方法 118 19.12. 练习 118 二十、 子查询 119 20.1. 使用子查询 120 20.2. IN\NOT IN...

Global site tag (gtag.js) - Google Analytics