我正在努力找出这个正确的mysql查询...
我有一个名为' blog‘的表,里面有博客条目。每个条目都有一个名为'created.‘’的日期时间列(YYYY-MM-DD HH:MM:SS)。我想在我的页面的侧边栏上列出所有不同的月份-年份,这样用户就可以很容易地从博客存档中找到更老的条目。
我有一个用户定义的函数,我的BlogEntry类使用它来查询数据库。根据查询,它返回一个记录数组。例如..。
$entries = BlogEntry::find_by_sql("SELECT * FROM blog ORDER BY created DESC");我可以使用什么查询来仅返回写入条目的不同月份-年份?
我已经尝试了一些东西(没有成功),比如:
$months = BlogEntry::find_by_sql("SELECT DISTINCT MONTH(created) FROM blog");任何关于如何返回不同的月份和年份的想法或建议都将非常感谢!
更新:也许我的问题在于如何显示返回的记录。我一直在尝试下面的方法。
<ul>
<?php foreach($months as $month): ?>
<li><?php echo $month->created; ?></li>
<?php endforeach; ?>
</ul>我知道这看起来不太对劲。如何将其格式化为list Month-YYYY?
发布于 2011-11-06 22:48:14
$months = BlogEntry::find_by_sql("SELECT DATE_FORMAT(created, '%m-%Y') AS created_month FROM blog GROUP BY created_month");
也应该做这个把戏吗?
DATE_FORMAT
发布于 2015-04-06 20:04:57
你可以用这个。
select distinct(DATE_FORMAT(date,'%m-%Y')) from table_name
where order by DATE_FORMAT(date,'%Y') asc,DATE_FORMAT(transaction_date,'%m') asc;发布于 2020-10-05 03:00:39
对于MySQL,使用如下所示
SELECT DISTINCT(DATE_FORMAT(update_date,'%b %Y')) as archive_dt FROM tbl_articleshttps://stackoverflow.com/questions/8027734
复制相似问题