[20150414]oracle日期存储.txt-阿里云开发者社区

开发者社区> lfreeali> 正文

[20150414]oracle日期存储.txt

简介: [20150414]oracle日期存储.txt --以前自己没有注意的问题,自己学习看看. SCOTT@test> @ver1 PORT_STRING                    VERSION        BANNER ------...
+关注继续查看

[20150414]oracle日期存储.txt

--以前自己没有注意的问题,自己学习看看.

SCOTT@test> @ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.3.0     Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

SCOTT@test> select dump(hiredate) c40 ,hiredate,dump(sysdate) c40,sysdate from emp where rownum=1;
C40                                      HIREDATE            C40                                      SYSDATE
---------------------------------------- ------------------- ---------------------------------------- -------------------
Typ=12 Len=7: 119,180,12,17,1,1,1        1980-12-17 00:00:00 Typ=13 Len=8: 223,7,4,14,9,28,52,0       2015-04-14 09:28:52

--可以发现SQL语句中对SYSDATE,以及dump表中的日期型不一样.

--dump(sysdate)可以类型Typ=13 Len=8.后面多了一个0,月日时分秒保持一致.年

SCOTT@test> @10to16 2015
10 to 16 HEX   REVERSE16
-------------- ------------------
00000000007df 0xdf070000


SCOTT@test> @16to10 df
16 to 10 DEC
------------
         223

--可以年转换成16进制,小头在前,大头在后.
SCOTT@test> select 7*256+223 from dual ;
7*256+223
----------
      2015

--而保存在数据块的日期类型是Typ=12 Len=7.
--保存在数据块的时分秒存在0的情况,基本为了回避都是在原来的基础上加1.
--而月日不存在0的情况,保持不动.
--而年月仔细查看可以看出是原来的基础上加100.

--至于公元前的日期很少用,不在探究了.
--我参考了链接:

http://blog.itpub.net/4227/viewspace-68517/
http://blog.itpub.net/4227/viewspace-68514/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
C/C++封装库ocicpplib调用Oracle存储过程的方法
工作这么多年,一直使用Mysql, Oracle数据库没有接触过, 这次要使用C/C++语言来调用Oracle的存储过程, 懒得自己去看OCI的API了, 直接上网找别人封装的库, 最后发现了这个ocicpplib, 下载了看了一下, 还不错, 使用起来比较简单。
1069 0
ORACLE 存储过程中的Authid Current_User
ORACLE用户具有DBA权限,却会出现无法在存储过程里面创建一张普通表的现象。因为即使用户拥有DBA权限,用户拥有的role权限在存储过程是不可用的。遇到这种情况,通常解决方法是进行显式的权限分配: grant create table to user a;但这种方法太麻烦,因为有可能执行一个存储过程,需要很多不同权限。
959 0
Oracle存储过程基本语法
  1.基本结构   CREATE OR REPLACE PROCEDURE 存储过程名字   (   参数1 IN NUMBER,   参数2 IN NUMBER   ) IS   变量1 INTEGER :=0;   变量2 DATE;   BEGIN   END 存储过程名字   2.SELECT INTO STATEMENT   将select查询的结果存入到
1124 0
Oracle 中关于 Between and 日期边界问题
之所以会写日期边界范围的问题,是因为我在查询日期的时候,刚开始数据都能正常获取,但是突然有些数据获取不到。经过一番折腾发现, Oracle 在对日期格式的字段进行查询时,会对字符串进行了隐式转换。 以下就是错误的查询语句 -- create_time 的时间为 2019/3/26 23:00:00 SELECT * FROM T_CLASS T WHERE T.
4925 0
+关注
lfreeali
熟悉oracle数据库性能优化,rman备份,数据库恢复技术.
2122
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载