我想知道 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 bytes
15 位十进制数字精度。下面你可以读到:
双精度类型的范围通常约为 1E-307 到 1E+308,精度至少为 15 位。
所以1E+308
几秒钟之后1970-01-01
你就会在 2038 年之后走得很远......
事实上,如果您查看https://wiki.postgresql.org/wiki/TodoDone84,其中列出了 PostgreSQL 8.4 中已完成的所有功能,您可以看到:
已完成项目:扩展时区代码以允许 64 位值,以便我们可以表示 2038 年之后的年份
归档时间: |
|
查看次数: |
2157 次 |
最近记录: |