首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取每个月的数据

获取每个月的数据
EN

Stack Overflow用户
提问于 2013-02-18 11:26:58
回答 2查看 177关注 0票数 2

所以我想做的基本上是这样的:

月份和年份:

-All在该月份和年份发送的数据

例如:2013年2月:

此日期的-The帖子

2013年3月:

此日期的-The帖子

诸若此类。

我的表中有一个日期列,它的格式如下: day.month.year

我使用PHP和MySQL。

我有我自己使用的MVC框架。我将对其进行简化,使其在这里更容易理解。获取数据的函数:

代码语言:javascript
复制
function selectAll($sql){

    $find = $this->prepare($sql);     
    $find->execute();                      
    $fetchdata = $find->fetchAll(PDO::FETCH_ASSOC);        
    return $fetchdata;
}

以及获取日期的代码:

代码语言:javascript
复制
    $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);

这为我提供了日期的结果,但我不知道如何在每个日期下放入正确的数据。

EN

回答 2

Stack Overflow用户

发布于 2013-02-18 11:53:04

使用DATE_FORMAT的mysql函数。

示例

代码语言:javascript
复制
SELECT DATE_FORMAT(date_field,'%M') as Month,DATE_FORMAT(date_field,'%Y') as Year FROM table_name

然后调试query的结果,您将看到monthyear的两个额外列,然后根据您的需要显示它。

如果date_fieldvarchar,则使用str_to_date mysql函数。

代码语言:javascript
复制
SELECT STR_TO_DATE(date_field,'%M') as Month, STR_TO_DATE(date_field,'%Y') as Year FROM table_name;

操作问题更新

试试GROUP_CONCAT

代码语言:javascript
复制
SELECT
*,
GROUP_CONCAT(created) AS month
FROM
table_name
GROUP BY MONTH(created) DESC;
票数 0
EN

Stack Overflow用户

发布于 2013-02-18 11:54:32

  1. 使用str_to_date function
  2. 将varchar日期字段转换为确切日期使用DATE_FORMAT您可以选择按月记录
  3. ,其中$input是<代码>D9格式// ex: 02-2013-> 2013年2月<代码>H210<代码>G211

SELECT * FROM table WHERE DATE_FORMAT(str_to_date(date\_column,'%d/%m/%Y'),'%Y-%m')= '".$input."';

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14929030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档