【发布时间】:2019-12-24 16:13:26
【问题描述】:
我在表格中有一个列,其中包含以毫秒为单位的时间 (2147483647),或者我已经告诉过。我正在尝试将其转换为实际时间(人类时间),但没有那么幸运。我已经尝试了所有我认为会有所帮助的东西,尽管我在谷歌和这里找到的东西都没有帮助。
SELECT arrivalTime, FROM_UNIXTIME(uploadTime), "; //UNIX_TIMESTAMP(uploadTime) * 1000 // UNIX_TIMESTAMP() * 1000
到达时间以不同的时间格式上传,但我已经可以使用了。我还有一张使用不同时间格式的不同表格,它也可以使用,但我将其包含在我的帖子中,以防万一它可以用作参考,或者有人可能会在他们的代码中发现它有用。
Date_Add('1970-01-01 0:0:0', INTERVAL(uploadTime/1000 - (timeZoneOffset*60)) SECOND) AS uploadTime
任何帮助或建议将不胜感激!!!
PS:当前查询给我这个 2038-01-18 22:14:07 作为时间,这显然是错误的。我也试过这个
FROM_UNIXTIME(uploadTime/1000);
但也没有做我想做的事
PSS:好的,我四处打听后发现这个 2147483647 来自 Android getTimeInMillis from calendar.API。希望对任何人都有帮助?
【问题讨论】:
-
2147483647应该代表什么时间? -
@GordonLinoff 报告上传的实际日期
-
@azunyan 这个数字也恰好是PHP's max 32-bit integer。似乎很奇怪
-
您的输入看起来很像 2^31-1,这是最大的 32 位有符号整数。我认为您可能遇到了溢出问题...
-
2147483647是0x7FFFFFFF,这不太可能是正确的,2038-01-18 22:14:07是将该值正确转换为时间(以秒为单位)