我想知道 Postgres 是否会处理 2038 年出现的 unix 纪元问题?我读过这篇文章并且很想知道。
这显然与生产力有关,因为它距离太远,但我很好奇。
如果您查看文档中的https://www.postgresql.org/docs/11/functions-datetime.html ,它会显示有关从纪元值to_timestamp返回值的函数的数据。timestamp with time zone完整描述为:“将 Unix 纪元(自 1970-01-01 00:00:00+00 以来的秒数)转换为时间戳”
该函数的输入类型是double precision。
从https://www.postgresql.org/docs/11/datatype-numeric.html您可以看到它double precision被定义为8 bytes15 位十进制数字精度。下面你可以读到:
双精度类型的范围通常约为 1E-307 到 1E+308,精度至少为 15 位。
所以1E+308几秒钟之后1970-01-01你就会在 2038 年之后走得很远......
事实上,如果您查看https://wiki.postgresql.org/wiki/TodoDone84,其中列出了 PostgreSQL 8.4 中已完成的所有功能,您可以看到:
已完成项目:扩展时区代码以允许 64 位值,以便我们可以表示 2038 年之后的年份
| 归档时间: |
|
| 查看次数: |
2157 次 |
| 最近记录: |