我在表中有一列包含以毫秒为单位的时间 (2147483647),或者我已经告诉过。我正在尝试将其转换为实际时间(人类时间),但并没有那么幸运。我已经尝试了所有我认为会有所帮助的方法,尽管我在谷歌和此处找到的所有方法都没有帮助。
SELECT arrivalTime, FROM_UNIXTIME(uploadTime), "; //UNIX_TIMESTAMP(uploadTime) * 1000 // UNIX_TIMESTAMP() * 1000
arrivalTime 以不同的时间格式上传,但我已经可以使用了。我还有一个使用不同时间格式的不同表,它也可以工作,但我将它包含在我的帖子中以防万一它可以用作引用或有人可能会发现它在他们的代码中有用。
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。希望对任何人有帮助?
最佳答案
我会在 SQL 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
这似乎是正确的。
关于mysql - Convertint 毫秒至今,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57556784/