在 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正确读取时间戳吗?
从纪元开始的秒数和毫秒数之间存在差异。除以 1000:
SELECT my_date, datetime(my_date/1000, 'unixepoch') as last_update
FROM my_table;
Run Code Online (Sandbox Code Playgroud)
输出:
????????????????????????????????????????
? 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 月开始的日期和时间。
看起来它在范围内。