gpt4 book ai didi

mysql - MariaDB UNIX_TIMESTAMP() 在将来使用日期时返回 NULL

转载 作者:行者123 更新时间:2023-11-29 05:01:40 25 4
gpt4 key购买 nike

我正在使用 UNIX_TIMESTAMP(),但是当我传递很远的 future 日期时,它会在某个时候开始返回 NULL。

例如,以下 SQL 给出了一个正确的非空结果:SELECT UNIX_TIMESTAMP(ADDDATE(NOW(), INTERVAL 18 YEAR))

但是,如果我将该值增加一年,则返回值变为 NULL:SELECT UNIX_TIMESTAMP(ADDDATE(NOW(), INTERVAL 19 YEAR))

这里有什么问题?会不会是整数溢出?我该如何解决?

我使用的是以下 MariaDB 版本:Ver 15.1 Distrib 10.4.7-MariaDB,适用于使用 readline 5.1 的 Linux (x86_64)

最佳答案

Unix time (signed 32-bit)结束于 UTC 2038 年 1 月 19 日星期二 03:14:07

相关:Year_2038_problem


UNIX_TIMESTAMP:

Timestamps in MariaDB have a maximum value of 2147483647, equivalent to 2038-01-19 05:14:07. This is due to the underlying 32-bit limitation. Using the function on a date beyond this will result in NULL being returned. Use DATETIME as a storage type if you require dates beyond this.

SELECT ADDDATE(NOW(), INTERVAL 19 YEAR)  -- DATETIME
-- 2038-09-07 18:42:39

关于mysql - MariaDB UNIX_TIMESTAMP() 在将来使用日期时返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57836038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com