首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MYSQL查询选择不同的月份和年份

MYSQL查询选择不同的月份和年份
EN

Stack Overflow用户
提问于 2018-06-09 22:07:31
回答 3查看 7.7K关注 0票数 2

我有一个表,其中有一个datetime列,其中包含多个日期。我想为只存在一次的每一行输出月份和年份。例如"April 2017April 2018May 2018June 2018

我已经设法让下面的工作,这显示“四月,五月,六月”,但它需要显示4月两次,因为它是在不同的年份,我也想显示他们各自的年份。

代码语言:javascript
复制
<?php $results = mysqli_query($link, 'SELECT DISTINCT MONTH(date_added) AS "Month" FROM payments') or die("Query fail: " . mysqli_error($link)); ?>

<?php foreach($results as $result) :?>
    <?php $monthText = date("F", strtotime("2001-" . $result['Month'] . "-01")); ?>
            <?= $monthText ?>
<?php endforeach; ?>

我已经研究了几个小时,并没有被强迫去寻找一个有效的解决方案。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-09 22:10:12

您可以将distinct关键字应用于字段的组合:

代码语言:javascript
复制
SELECT DISTINCT YEAR(date_added) AS "Year", MONTH(date_added) AS "Month" FROM payments
票数 6
EN

Stack Overflow用户

发布于 2018-06-09 22:13:07

你必须分组:

代码语言:javascript
复制
SELECT MONTH(`date_added`) AS `Month`, YEAR(`date_added`) AS `Year`
FROM `payments`
GROUP BY `Month`, `Year`
票数 5
EN

Stack Overflow用户

发布于 2019-09-03 22:49:24

使用更高的版本和严格的规则,您将无法从上述两个答案中获得正确的响应,因为GROUP BY在查询的SELECT部分之前操作,因此它不会响应别名。

你需要

代码语言:javascript
复制
SELECT DISTINCT MONTH(`date_added`) AS `Month`, YEAR(`date_added`) AS `Year`
FROM payments GROUP BY MONTH('date_added`), YEAR(`date_added`)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50775116

复制
相关文章

相似问题

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