我将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
答案 0 :(得分:3)
除非你另有说明,strftime()
认为这些数字是朱利安日值 - 与Unix纪元毫秒非常不同。
您想要转换为秒,并告诉strftime()
这些是Unix纪元数字:
select strftime('%Y-%m', date / 1000, 'unixepoch');
请参阅SQLite Date and Time Functions文档中的修改器部分。