|
|
1
161
我已将此标记为社区wiki,因此请随意编辑。 2038年的问题到底是什么?“2038年的问题(也被称为Unix千年虫,Y2K38与Y2K问题类似)可能会导致某些计算机软件在2038年之前或之后出现故障。该问题影响到所有将系统时间存储为有符号32位整数的软件和系统,并将该数字解释为UTC 1月1日00:00:00以来的秒数, 1970." 超越 我们如何解决它?
是否有任何可能的替代方案来使用它,而这些替代方案不会造成类似的问题?
尽可能使用大类型在数据库中存储日期:64位就足够了——GNU C和POSIX/SuS中的长类型,或者
那么MySQL呢 DATETIME 我们可以对使用时间戳的现有应用程序做些什么来避免所谓的问题,当它真正发生时?2038年,很少有PHP应用程序仍然存在,尽管很难预见web还不是一个遗留平台。
下面是更改数据库表列以进行转换的过程
|
|
|
2
15
当使用UNIX时间戳存储日期时,实际上使用的是32位整数,用于记录自1970-01-01以来的秒数;看见 Unix Time 这个32位的数字将在2038年溢出。这就是2038年的问题。
不过有一个小提示:可能有一个非常高的风险 (从统计上讲) 您的应用程序在2038年之前会被重新编写好几次^^^^^因此,如果您不必在将来处理日期,您就不必在当前版本的应用程序中处理该问题。。。 |
|
|
3
7
|
|
|
4
2
http://en.wikipedia.org/wiki/Year_2038_problem 有大部分的细节 总之:
对于只存储过去日期的系统,我想您暂时不必担心!主要的问题是那些在将来使用日期的系统。如果你的系统需要在未来28年内运行,那么你现在就应该开始担心了!
4) 见3! 5) 参见第4章!!!;) |
|
|
5
1
Bros,如果您需要使用PHP显示时间戳,这是最好的PHP解决方案,无需更改UNIX_时间戳格式。 Here's the DateTime solution . 只要在数据库中有未签名的BIGINT(8)作为时间戳。 只要你有PHP5.2.0++ |
|
|
6
-1
这可能不是一个有效的方法,但它是有效的。 |
|
|
Bard.Mus · 迁移后的数据库字符集环境 1 年前 |
|
Efannnnnn · 将Id数据存储到任何页面 1 年前 |
|
|
yooooo · 用于在块中删除的存储过程-LOOP未执行 1 年前 |
|
John Beasley · 更新一定数量记录的连续日期 1 年前 |
|
|
ColinM · MySQL以前的结果查询返回不正确的值 1 年前 |
|
Sergey_Z · MySQL只需无条件连接2个表和交叉连接 1 年前 |