我有一个Sqlite3数据库,其中有一个Unix表,该表有一个date INTEGER字段,它存储Unix时间戳,我想做两个选择:
CREATE TABLE reports (id INTEGER PRIMARY KEY, user_id, report, date INTEGER);
SELECT * FROM reports;
1|123456|report|15469650981.上个月的所有分录;
2.从本月1日到今天的所有条目。
我试过了,但不起作用。
SELECT * FROM reports WHERE datetime(date, 'unixepoch') >= date('now', '-1 month); 我知道有些东西还不够,但不幸的是,没有足够的sql知识。请告诉我,怎样做这样的记录?
发布于 2019-01-09 01:04:42
要获取上个月的第一天,您需要这样:
date('now','start of month','-1 month')因此,您希望日期从上述日期开始,直到(不包括)当月的1号,即:
date('now','start of month')因此,获取上个月的行数的语句可以是:
SELECT *
FROM reports
WHERE
datetime(date, 'unixepoch') >= date('now','start of month','-1 month')
AND
datetime(date, 'unixepoch') < date('now','start of month');第二条语句更简单:
SELECT *
FROM reports
WHERE
datetime(date, 'unixepoch')
BETWEEN
datetime('now', 'start of month') AND datetime('now', 'localtime'); https://stackoverflow.com/questions/54095859
复制相似问题