在SQLite中存储我的日期长(毫秒):我可以使用strftime(...)吗?

时间:2014-08-10 21:21:34

标签: sqlite strftime

我将SQLite中的日期存储在数据类型为INTEGER的列中。我存储自1970年以来的毫秒数。

例如:

  date (long)       other columns ...
  -----------------------------------------
   1407297600000       ...
   1407211200000       ...
   1407124800000       ...

我的问题是:在这种情况下如何使用strftime()?
如果没有,我应该使用TEXT作为列类型?

运行此:

 select strftime('%Y-%m', date) from my_table;

投掷无聊的东西:

  strftime('%Y-%m', date)
  -----------------------------------------
   1968-19
   1968-19
   1968-19

1 个答案:

答案 0 :(得分:3)

除非你另有说明,strftime()认为这些数字是朱利安日值 - 与Unix纪元毫秒非常不同。

您想要转换为秒,并告诉strftime()这些是Unix纪元数字:

select strftime('%Y-%m', date / 1000, 'unixepoch');

请参阅SQLite Date and Time Functions文档中的修改器部分。