请帮我将此查询从 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/

10-12 19:59