SQLite似乎没有正确转换unix时代

时间:2017-09-18 07:50:18

标签: sqlite

我在real类型的列中插入时间戳。时间戳采用unixepoch格式,例如1505720496876即GMT:2017年9月18日星期一7:41:36.876 AM。

但是,当我执行查询时 select datetime(timestamp, 'unixepoch', 'localtime') from history我得到了-1413-03-01 14:07:12

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您目前正在使用毫秒,但您需要使用秒:

select datetime(timestamp / 1000, 'unixepoch', 'localtime')
from history

来自documentation

  

“unixepoch”修饰符(11)仅在紧跟DDDDDDDDDD格式的时间字符串后才起作用。此修饰符导致DDDDDDDDD不像通常那样被解释为Julian日期数,而是解释为Unix时间 - 自1970年以来的秒数