Php Mysql查询选择不同的月/年
我正在努力找到正确的mysql查询 我有一个名为“blog”的表,其中包含blog条目。每个条目都有一个名为“created”的datetime列(YYYY-MM-DD HH:MM:SS)。我想在页面的侧栏上列出条目编写的所有不同月份,以便用户可以轻松地从博客存档中查找旧条目 我有一个用户定义的函数,BlogEntry类使用它来查询数据库。根据查询,它返回一个记录数组。例如Php Mysql查询选择不同的月/年,php,mysql,Php,Mysql,我正在努力找到正确的mysql查询 我有一个名为“blog”的表,其中包含blog条目。每个条目都有一个名为“created”的datetime列(YYYY-MM-DD HH:MM:SS)。我想在页面的侧栏上列出条目编写的所有不同月份,以便用户可以轻松地从博客存档中查找旧条目 我有一个用户定义的函数,BlogEntry类使用它来查询数据库。根据查询,它返回一个记录数组。例如 $entries = BlogEntry::find_by_sql("SELECT * FROM blog ORDER B
$entries = BlogEntry::find_by_sql("SELECT * FROM blog ORDER BY created DESC");
我可以使用什么查询仅返回写入条目的不同月份和年份
我尝试过一些事情(运气不佳),例如:
任何关于如何返回不同月份和年份的想法或建议都将不胜感激
更新:
也许我的问题在于如何显示返回的记录。我一直在尝试以下方法
<ul>
<?php foreach($months as $month): ?>
<li><?php echo $month->created; ?></li>
<?php endforeach; ?>
</ul>
我知道这看起来不对。如何将其格式设置为列出月份YYYY?
$months=BlogEntry::find_by_sql(“选择日期”格式(已创建,“%m-%Y”)作为从博客组按创建的月份创建的月份)代码>
你也应该这样做吗
您可以使用这个
select distinct(DATE_FORMAT(date,'%m-%Y')) from table_name
where order by DATE_FORMAT(date,'%Y') asc,DATE_FORMAT(transaction_date,'%m') asc;
对于MySQL,如下所示
SELECT DISTINCT(DATE_FORMAT(update_date,'%b %Y')) as archive_dt FROM tbl_articles
查询确实有效,但我的问题是如何显示记录。如果可以,请查看我的更新。。。有什么建议吗?修正了。您可以在此处更改:DATE\u格式(已创建,“%m-%Y”)
正是我要查找的内容,而且我知道日期的长度在很长一段时间内不会更改:),但这不是更干净吗<代码>通过createdshort从posts组中选择DATE_格式(已创建,“%m-%Y”)作为createdshort
您是正确的。这篇文章已经过时了,需要更新。请看我答案的更新:现在查询中输出的格式应该是您想要的。。。
SELECT DISTINCT(DATE_FORMAT(update_date,'%b %Y')) as archive_dt FROM tbl_articles