gpt4 book ai didi

c++ - MySQL FROM_UNIXTIME 命令不写入

转载 作者:行者123 更新时间:2023-11-30 01:15:19 25 4
gpt4 key购买 nike

这是我正在运行的 SQL 查询:

string theQuery = "UPDATE readings SET chng = 1, time = FROM_UNIXTIME(";
theQuery += boost::lexical_cast<string>(ss.time);
theQuery += ") WHERE id = 1;";

ss.time 是一个 uint32_t,记录自 1970 年 1 月 1 日以来的秒数。当我尝试将值“3586767203”放入 FROM_UNIXTIME(我设备上的时间值)的括号中时,它会更新我的时间字段为 NULL。如果我输入较小的数字,它会很好地更新时间字段。

如果我输入有效时间,为什么它会更新为 NULL?

最佳答案

您已经超出了 UNIXTIME 的限制。 3586767203 是 'Sun, 29 Aug 2083 12:13:23 GMT' 并且 UNIXTIME 不能大于解析为 '2038-01-18 22:14:07' ( FROM_UNIXTIME(2147483647) ) 的日期,因为时间是存储为纪元(1970 年 1 月 1 日)之后秒数的有符号 32 位整数,纪元之后 2^31 秒为“Tue, 19 Jan 2038 03:14:08 GMT”。

参见http://en.wikipedia.org/wiki/Year_2038_problem有关此问题的解释。

关于c++ - MySQL FROM_UNIXTIME 命令不写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19118960/

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