我需要在SQLite中通过查询获取时间戳格式
的排序日期我尝试了这个查询,但效果不佳
SELECT * FROM allmessages WHERE TIMESTAMP <= DATE('now','-365 day') AND TIMESTAMP >= DATE('now') order by TIMESTAMP DESC
我需要排序日期,如
从今天到1年之前
从今天到30天之前
从今天到7天之前
这些是DB
中的日期
Sory因为英语不好......
答案 0 :(得分:3)
这就是我所拥有的:
SELECT *
FROM allmessages
WHERE timestamp <= strftime('%s', 'now')*1000
AND timestamp >= strftime('%s', 'now', '-365 days')*1000;
一些警告:
你的时间戳似乎是从纪元开始的几毫秒?我将SQLite的内部时间戳乘以1000以反映出来。
您想要今天和一年前(2012年)之间的日期吗?如果是这样,上面的查询就可以了;如果你想要从今天到现在(2014年)的一年,请翻转比较运算符。
我正在使用SQLite的内部rowid
列;您可以将其替换为您自己的id列,将其移动到其他数据库。
答案 1 :(得分:1)
不应该只是
SELECT * FROM allmessages WHERE DATE(TIMESTAMP) >= DATE('now','-365 day') AND DATE(TIMESTAMP) < DATE('now') order by TIMESTAMP DESC
答案 2 :(得分:1)
试试这个:
SELECT * FROM allmessages WHERE DATE(TIMESTAMP/1000, 'unixepoch') >= DATE('now','-365 day') AND DATE(TIMESTAMP/1000, 'unixepoch') < DATE('now') order by TIMESTAMP DESC
查看更多详细信息(查找时间戳):http://www.sqlite.org/lang_datefunc.html