毫秒转换为日期

时间:2019-08-19 12:29:01

标签: mysql sql

我在表中有一列,其中包含以毫秒为单位的时间(2147483647),或者我已经告诉过。我正在尝试将其转换为实际时间(人工时间),但还不是很幸运。我已经尝试了所有我认为会有所帮助的内容,尽管我在google以及此处找不到的所有内容都没有帮助。

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是来自calendar.API的Android getTimeInMillis。希望对任何人有帮助?

1 个答案:

答案 0 :(得分:2)

我会在SQL Server中做类似的事情

DateAdd(Second, (2147483647/1000), CAST('1970-01-01 00:00:00' AS datetime))  AT TIME ZONE 'Central European Standard Time' AS uploadTime


这给了我输出:
enter image description here

更新后,毫秒数来自Android getTimeInMillis():
enter image description here
在上面的函数中使用毫秒数:

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,这似乎是正确的。