用 sqlite3 读取 unix 时间戳

Pau*_*ine 4 sqlite

在 sqlite3 数据库中,我将日期和时间存储为 unix 时间戳。UNIX时间戳的例子中,我们可以找到我们的数据库:1457600307000, 1457600109000, 1457599991000

执行以下查询时:

SELECT datetime(my_date, 'unixepoch') as last_update 
FROM my_table;
Run Code Online (Sandbox Code Playgroud)

结果不是我们所期望的。我们从执行该查询中获得的日期是:-1413-03-01 13:07:12

当我们真正期望从March / April 2016.

无论如何我可以sqlite3正确读取时间戳吗?

Luk*_*zda 5

从纪元开始的秒数毫秒数之间存在差异。除以 1000:

SELECT my_date, datetime(my_date/1000, 'unixepoch') as last_update 
FROM my_table;
Run Code Online (Sandbox Code Playgroud)

SqlFiddleDemo

输出:

????????????????????????????????????????
?    my_date     ?     last_update     ?
????????????????????????????????????????
? 1457600307000  ? 2016-03-10 08:58:27 ?
? 1457600109000  ? 2016-03-10 08:55:09 ?
? 1457599991000  ? 2016-03-10 08:53:11 ?
????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

当我们实际上期望从 2016 年 3 月 / 4 月开始的日期和时间。

看起来它在范围内。