请帮我将此查询从 MySQL 重写为 SQLite 格式:
SELECT MAX(pubdate) as pubdate,
COUNT(DISTINCT post_id) AS count,
DATE_FORMAT(pubdate,"%b-%y") as month
FROM posts
WHERE pubdate >= DATE_SUB(CURDATE(), INTERVAL 5 MONTH)
GROUP BY month
ORDER BY pubdate ASC
基本上,我想获得按月份分组的过去 5 个月所有帖子的数量,但是我很难重写
DATE_FORMAT(...)
和 DATE_SUB(...)
函数。pubdate
具有标准的MySQL TIMESTAMP
格式(2011-06-21 20:05:01
) 最佳答案
SELECT MAX(pubdate) as pubdate,
COUNT(DISTINCT post_id) AS count,
strftime('%m-%Y',pubdate) as month
FROM posts
WHERE pubdate >= datetime('now','-5 month')
GROUP BY month
ORDER BY pubdate ASC
是我能使它看起来干净的最接近的。但是,这将为
month
返回'01 -1999'格式。如果您希望它是“Jan 99”,则必须使用某种形式的凌乱案例声明。我目前无法访问sqlite,因此此代码尚未经过测试。
关于mysql - 为 SQLite 重写 MySQL 日期函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9500549/