前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小时制式问题

小时制式问题

作者头像
bisal
发布2019-01-30 09:36:17
4250
发布2019-01-30 09:36:17
举报

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

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

代码语言:javascript
复制
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的值,

代码语言:javascript
复制
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,

代码语言:javascript
复制
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小时制。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年12月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档