我在一个表中有一个列,它包含的时间以毫秒(2147483647)为单位,或者我已经告诉过了。我正试着把它转换成实际时间(人类时间),但还没有那么幸运。我试过所有我认为会有帮助的东西,尽管我在谷歌和这里发现的任何东西都没有帮助。
SELECT arrivalTime, FROM_UNIXTIME(uploadTime), "; //UNIX_TIMESTAMP(uploadTime) * 1000 // UNIX_TIMESTAMP() * 1000arrivalTime是以不同的时间格式上传的,但我已经做到了。我还有一个使用不同时间格式的不同的表,它也在工作,但我将它包含在我的帖子中,以防它可以用作引用,或者有人可能会发现它在他们的代码中有用。
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);但也没有做我想做的事
好的,问了一遍后,我发现这2147483647是来自calendar.API的Android getTimeInMillis。希望这能帮到任何人吗?
发布于 2019-08-19 12:57:50
我会在Server中这样做
DateAdd(Second, (2147483647/1000), CAST('1970-01-01 00:00:00' AS datetime)) AT TIME ZONE 'Central European Standard Time' AS uploadTime这给了我输出:

在更新了来自Android getTimeInMillis()的毫秒之后:

在上面的函数中使用这毫秒:
DateAdd(Second, (1566302250040/1000), CAST('1970-01-01 00:00:00' AS datetime)) AT TIME ZONE 'Central European Standard Time'结果进入2019-08-20 11:57:30.000 +02:00,这似乎是正确的。
https://stackoverflow.com/questions/57556784
复制相似问题