mysql之为 SQLite 重写 MySQL 日期函数

dudu 阅读:1147 2023-08-24 23:31:47 评论:0

请帮助我将此查询从 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”格式。如果您希望它是“99 年 1 月”,则必须使用某种形式的困惑案例陈述。

我目前无法访问 sqlite,因此此代码尚未经过测试。


标签:mysql
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

全民解析

全民解析

关注我们