小时制式问题

user_objects视图中,有两个字段,created和timestamp,按照官方手册,created就是对象的创建时间戳,DATE类型,timestamp是对象定义的时间戳,VARCHAR2类型,而且他的长度是19,正好存储"2018-12-27 09:31:14",显然和created含义相同,

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==


但我们创建表,发现user_objects视图检索出来的created和timestamp,显示的时间,相差了12个小时,这是为什么?

SQL> create table t1(id number);
Table created.
SQL> select to_char(created, 'yyyy-mm-dd hh:mi:ss'), timestamp from user_objects where object_name='T1';
TO_CHAR(CREATED,'YYYY-MM-DDHH:MI:SS')  TIMESTAMP
------------------------------------- ---------------------
2018-12-27 09:31:14                    2018-12-27:21:31:14

其实,12个小时,容易联想到的,就是12小时制,我们验证下,针对DATE类型的created,使用hh24的格式,显示出来,就是这个timestamp的值,

SQL> select to_char(created, 'yyyy-mm-dd hh24:mi:ss'), timestamp from user_objects where object_name='T1';
TO_CHAR(CREATED,'YYYY-MM-DDHH24:MI:SS')   TIMESTAMP
---------------------------------------- ---------------------
2018-12-27 21:31:14                       2018-12-27:21:31:14

如果使用“am"或“pm”,都会正常显示,这是下午09:31:14,

SQL>  select to_char(created, 'yyyy-mm-dd hh:mi:ss am'), timestamp from user_objects where object_name='T1';
TO_CHAR(CREATED,'YYYY-MM-DDHH:MI:SSAM')  TIMESTAMP
--------------------------------------- ---------------------
2018-12-27 09:31:14 pm                   2018-12-27:21:31:14
SQL> select to_char(created, 'yyyy-mm-dd hh:mi:ss pm'), timestamp from user_objects where object_name='T1';
TO_CHAR(CREATED,'YYYY-MM-DDHH:MI:SSPM')  TIMESTAMP
--------------------------------------- ---------------------
2018-12-27 09:31:14 pm                   2018-12-27:21:31:14

am,拉丁文ante meridiem,准确地说,应该是中午之前。

pm,拉丁文post meridiem,准确地说,应该是中午之后。


关于12小时制,科普一下,

十二小时制起源于埃及。然而,每个小时的长度会由于季节而不同。从黄昏到黎明12个小时,从黎明到黄昏也是12个小时长。罗马人也使用12小时制:全天平均地被分为十二个小时(因此一年中各天的长度是不尽相同的),夜间被分为三个小时。这是因为在水鈡发明之前,人们使用太阳作为计时工具,所以没有办法准确的划分时间。


罗马人对于早上的时间计数同现在是相反的:例如,"3 ante meridiem",或“3 hours ante meridiem”意味着中午以前的第三个小时,而不是现代意义的“午夜以后的第三个小时”。


今天,十二小时制仍然是大多数指针式钟表显示时间的方法,每十二个小时旋转一周。对于24小时旋转一周来说,时针每小时仅仅转动了15°,这个角度太小以至于难以分辨。


尽管它在现代世界中已经广泛的被二十四小时制所代替,尤其在书写通信中。但是,12小时制使用的ante meridiem/post meridiem形式仍然是当前在澳大利亚和美国书写和交谈时使用的主要形式。在加拿大(尤其是魁北克)、英联邦、阿尔巴尼亚、希腊和其他的英语地区,以及南美洲的西班牙语地区,他也是常常和24小时制同时使用。缩写“AM”和“PM”也常常在英语和西班牙语中使用。在阿尔巴尼亚,也有意义相同的词“PD”和“MD”,在希腊则是“πµ”和“µµ”。其它的多数语言中很少有正式场合中使用“上午”和“下午”的提法,但是在民间则使用非正式的12小时制。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7192724/viewspace-2286811/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7192724/viewspace-2286811/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值