[20170825]2038.txt

简介: [20170825]2038.txt --//昨天帮别人解决电脑问题联想到的,对方是主机电池没电,导致启动XP黑屏,重新设置正确的时间后ok. --//这样我想到除了2000年外的2038年的问题,大家知道类unix的os系统计时从'1970/1/1'开始的秒数.

[20170825]2038.txt

--//昨天帮别人解决电脑问题联想到的,对方是主机电池没电,导致启动XP黑屏,重新设置正确的时间后ok.
--//这样我想到除了2000年外的2038年的问题,大家知道类unix的os系统计时从'1970/1/1'开始的秒数.
--//因为符号整形最大是2^31-1=2147483647秒.

SYS@book> select to_date('1970/1/1','yyyy-mm-dd') + 2147483647/86400 from dual ;
TO_DATE('1970/1/1',
-------------------
2038-01-19 03:14:07

--//也就是到这个时间后涉及到许多设备也许手机,os,交换机等许多设备的系统时间也许都会被重置.
--//我记得OO曾经在海区发过类似的帖子,当时在我看来我那个时候已经退休...^_^.

--//顺便学习linux的data命令.

--//%s 显示秒数.
$ date +"%s %Y-%m-%d %T"
1503648237 2017-08-25 16:03:57

--//反过来如果知道秒数,如何显示时间能,google...

$ date -d "1970-01-01 00:00:00 UTC 1503648237 seconds" +"%Y-%m-%d %T"
2017-08-25 16:03:57

$ date -d "1970-01-01 00:00:00 UTC 2147483647 seconds" +"%Y-%m-%d %T"
2038-01-19 11:14:07
--//时区问题,相差8个小时.

$ date -d "1970-01-01 00:00:00  2147483647 seconds" +"%Y-%m-%d %T"
2038-01-19 03:14:07

$ date -d "1970-01-01 00:00:00  3147483648 seconds" +"%Y-%m-%d %T"
2069-09-27 05:00:48

$ date -d "1970-01-01 00:00:00  1113147483648 seconds" +"%Y-%m-%d %T"
37244-03-28 10:20:48

--//不过好像date命令不受影响.但愿我多虑了....

--//另外如果开启10046跟踪,里面的tim记录的'1970/1/1'开始的秒数乘以1000000.
*** 2017-08-24 11:06:59.156
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WAIT #140568569128584: nam='SQL*Net message from client1' ela= 10215533 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1503544019156541
CLOSE #140568569128584:c=0,e=8,dep=0,type=1,tim=1503544019156653
=====================
PARSING IN CURSOR #140568569243528 len=17 dep=0 uid=83 oct=3 lid=83 tim=1503544019156841 hv=1745700775 ad='61c8f7a0' sqlid='a2dk8bdn0ujx7'
select * from emp
END OF STMT
PARSE #140568569243528:c=0,e=133,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=3956160932,tim=1503544019156835
EXEC #140568569243528:c=0,e=59,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=3956160932,tim=1503544019157002
WAIT #140568569243528: nam='SQL*Net message to client' ela= 2 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1503544019157076
FETCH #140568569243528:c=0,e=99,p=0,cr=6,cu=0,mis=0,r=1,dep=0,og=1,plh=3956160932,tim=1503544019157226
WAIT #140568569243528: nam='SQL*Net message from client' ela= 827 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1503544019158106
WAIT #140568569243528: nam='SQL*Net message to client' ela= 2 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1503544019158198
FETCH #140568569243528:c=0,e=61,p=0,cr=1,cu=0,mis=0,r=7,dep=0,og=1,plh=3956160932,tim=1503544019158238
WAIT #140568569243528: nam='SQL*Net message from client' ela= 619339 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1503544019777623
WAIT #140568569243528: nam='SQL*Net message to client' ela= 3 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1503544019777726
FETCH #140568569243528:c=0,e=86,p=0,cr=1,cu=0,mis=0,r=6,dep=0,og=1,plh=3956160932,tim=1503544019777787
STAT #140568569243528 id=1 cnt=14 pid=0 pos=1 obj=87108 op='TABLE ACCESS FULL EMP (cr=8 pr=0 pw=0 time=89 us cost=3 size=532 card=14)'

--//例子tim=1503544019156541测试:

SYS@book> select to_date('1970/1/1','yyyy-mm-dd') + 1503544019156541/1e6/86400 from dual ;
TO_DATE('1970/1/1',
-------------------
2017-08-24 03:06:59

--//^_^,没有考虑时区.注意看下划线部分.而且丢失秒的精度,换成如下:
SYS@book> select to_timestamp('1970/1/1','yyyy-mm-dd') + 1503544019156541/1e6/86400 from dual ;
TO_TIMESTAMP('1970/
-------------------
2017-08-24 03:06:59

--//呃还是转换date类型.写成如下ok:

SYS@book> select to_timestamp('1970/1/1','yyyy-mm-dd') +  NUMTODSINTERVAL(1503544019156541/1e6,'SECOND') from dual ;
TO_TIMESTAMP('1970/1/1','YYYY-MM-DD')+NUMTODSINTERVAL(1503544019156541/1E6,
---------------------------------------------------------------------------
2017-08-24 03:06:59.156541000

目录
相关文章
|
数据库管理
[20180619]fsc表示什么.txt
[20180619]fsc表示什么.txt --//上个星期做sys.bootstrap$恢复时,执行verify时出现类似错误. BBED> verify dba 4,547 DBVERIFY - Verification starting FILE = /mnt/ramdisk/book/users01.
1178 0
|
SQL 测试技术 Perl
20180205]为什么是3秒.txt
[20180205]为什么是3秒.txt http://blog.itpub.net/267265/viewspace-2138042/ 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                   ...
1036 0
|
测试技术 数据库 数据库管理
[20180202]脏块写盘问题.txt
[20180202]脏块写盘问题.txt --//别人问的问题,如果要写脏块的scn号比块小,脏块会写盘吗? --//感觉这种情况不可能出现,脏块的scn应该是最高的,即使rac环境,也不会出现这种情况.
1007 0
|
SQL 索引
[20180118]tstats的问题.txt
[20180118]tstats的问题.txt --//关于使用tstats收集处理统计信息,可以看链接http://blog.itpub.net/267265/viewspace-1987839/ TSTATS in a Nutshell P97 The re...
886 0
|
SQL 测试技术 Perl
[20171031]markhot.txt
[20171031]markhot.txt --//昨天看了https://jonathanlewis.wordpress.com/2017/10/02/markhot/,测试看看这样时候可以减少争用.
901 0
|
SQL Oracle 关系型数据库
[20170909]为什么是12秒.txt
[20170909]为什么是12秒.txt --//在开发程序时我一般会强调开发尽量不要写一些自定义函数,往往可能导致CPU忙。 --//例子很像这样: CREATE OR REPLACE FUNCTION get_dept (p_deptno dept.
986 0
|
Linux 关系型数据库 Oracle
[20170731]rhgb表示什么.txt
[20170731]rhgb表示什么.txt --//一般我安装好linux服务器,我个性习惯修改grub.conf文件 # ls -l  /boot/grub/grub.
1110 0
|
数据库管理
[20161128]关于Little Enddian.txt
[20161128]关于Little Enddian.txt Intel字节顺序称为"Little-Endian",反之Sun,还有网络上采用标准是"Big-Endian"。
869 0