pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
儒略日由法国学者 Joseph Justus Scaliger(1540-1609)发明,其名称 大概取自他的父亲、意大利学者 Julius Caesar Scaliger(1484-1558)。 天文学家使用儒略周期为自公元前 4713 年 1 月 1 日以来的每一天分配 一个唯一的编号。这就是所谓的儒略日(JD)。JD 0 表示从 UTC 公元前 4713 年 1 月 1 日正午到 UTC 公元前 4713 年 1 月 2 日正午的 24 小时。
“儒略日”与“儒略历”不同。儒略历由 Julius Caesar 于公元前 45 年引入。在 1582 年各国开始改用格里高利历之前,它在西方世界一直被广泛使用。在儒略历中,回归年近似为 365 1/4 天 = 365.25 天。这会在大约 128 年里累计 1 天的误差。
不断累积的历法误差促使教皇格里高利十三世按照特伦托会议的指示改革历法。在格里高利历中,回归年近似为 365 + 97 / 400 天 = 365.2425 天。因此,大约要经过 3300 年,回归年与格里高利历之间才会累积出 1 天的偏差。
365+97/400 这一近似值是通过每 400 年设置 97 个闰年来实现的,具体规则如下:
| 每个能被 4 整除的年份都是闰年。 |
| 不过,每个能被 100 整除的年份都不是闰年。 |
| 但是,每个能被 400 整除的年份仍然是闰年。 |
因此,1700、1800、1900、2100 和 2200 都不是闰年,但 1600、2000 和 2400 是闰年。 相比之下,较早的儒略历规定所有能被 4 整除的年份都是闰年。
1582 年 2 月发布的教皇诏书规定,应从 1582 年 10 月删去 10 天, 使 10 月 15 日紧接在 10 月 4 日之后。这一改革在意大利、波兰、 葡萄牙和西班牙得到执行。其他天主教国家不久后也跟进,但新教 国家不愿改变,而希腊正教国家直到 20 世纪初才改用格里高利历。 大不列颠及其属地(包括今天的美国)在 1752 年实施了这项改革。 因此,1752 年 9 月 2 日之后紧接着就是 1752 年 9 月 14 日。 这就是为什么提供 cal 程序的 Unix 系统会产生 如下输出:
$ cal 9 1752
September 1752
S M Tu W Th F S
1 2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
SQL 标准指出:“在‘日期时间字面量’的定义中, ‘日期时间值’受格里高利历日期和时间的自然规则约束”。 1752-09-03 到 1752-09-13 之间的日期虽然在某些国家被教皇敕令取消, 但它们符合“自然规则”,因此是有效日期。
世界上不同地区曾发展出各种历法,其中许多早于格里高利历系统。 例如,中国历法的起源可以追溯到公元前 14 世纪。传说黄帝在公元前 2637 年发明了历法。中华人民共和国在民事上使用格里高利历,中国 传统历法则用于确定节日。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。