所以我想做的基本上是这样的:
月份和年份:
-All在该月份和年份发送的数据
例如:2013年2月:
此日期的-The帖子
2013年3月:
此日期的-The帖子
诸若此类。
我的表中有一个日期列,它的格式如下: day.month.year
我使用PHP和MySQL。
我有我自己使用的MVC框架。我将对其进行简化,使其在这里更容易理解。获取数据的函数:
function selectAll($sql){
$find = $this->prepare($sql);
$find->execute();
$fetchdata = $find->fetchAll(PDO::FETCH_ASSOC);
return $fetchdata;
}以及获取日期的代码:
$sql = "Select YEAR(Date) AS year, MONTH(Date) AS month, Headline from blog";
$data = $this->db->selectAll($sql);
foreach($data as $key => $value) {
$date[] = $value['month'].'.'.$value['year'];
}
$dateunique = array_unique($date);这为我提供了日期的结果,但我不知道如何在每个日期下放入正确的数据。
发布于 2013-02-18 11:53:04
使用DATE_FORMAT的mysql函数。
示例
SELECT DATE_FORMAT(date_field,'%M') as Month,DATE_FORMAT(date_field,'%Y') as Year FROM table_name然后调试query的结果,您将看到month和year的两个额外列,然后根据您的需要显示它。
如果date_field为varchar,则使用str_to_date mysql函数。
SELECT STR_TO_DATE(date_field,'%M') as Month, STR_TO_DATE(date_field,'%Y') as Year FROM table_name;操作问题更新
试试GROUP_CONCAT
SELECT
*,
GROUP_CONCAT(created) AS month
FROM
table_name
GROUP BY MONTH(created) DESC;发布于 2013-02-18 11:54:32
$input是<代码>D9格式// ex: 02-2013-> 2013年2月<代码>H210<代码>G211SELECT * FROM
tableWHERE DATE_FORMAT(str_to_date(date\_column,'%d/%m/%Y'),'%Y-%m')= '".$input."';
https://stackoverflow.com/questions/14929030
复制相似问题