首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MYSQL查询有记录的年份

MYSQL查询有记录的年份
EN

Stack Overflow用户
提问于 2013-11-11 21:39:17
回答 3查看 64关注 0票数 0

我有一个带有日期字段的表,我需要找出哪些年份有记录,并只输出年份的列表,例如(201120122013 ),我想象的唯一方法是获取所有行,然后在php循环中进行分析。

有没有人知道用纯SQL实现这一目标的方法,或者我是否需要使用php函数来分析数据?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-11 21:41:13

代码语言:javascript
运行
复制
SELECT DISTINCT YEAR(datecolumn) FROM yourtable
  • 年份()是一个MySQL函数,它将返回存储在列中的当前日期对应的年份。
  • SELECT DISTINCT只返回YEAR(datecolumn)结果的唯一值。更多信息可在此教程中找到。

如果您需要在一个SQL查询中输出列表本身,那么玲格的回答显然是可行的。

票数 3
EN

Stack Overflow用户

发布于 2013-11-11 21:40:50

试着做:

代码语言:javascript
运行
复制
SELECT YEAR(dateColumn)
FROM yourTable
GROUP BY YEAR
票数 3
EN

Stack Overflow用户

发布于 2013-11-11 21:43:16

你说你想要一个像2011,2012,2013.这样的列表下面的SQL Fiddle演示了如何在一个字段中实现这样的目标:

代码语言:javascript
运行
复制
SELECT CONCAT('[', GROUP_CONCAT(MQ.MyYear), ']') AS YearsList
FROM 
(
  SELECT DISTINCT YEAR(MyDateField) AS MyYear 
  FROM MyTable
) AS MQ

在上面的示例中,我使用一个子查询来获取表中找到的所有唯一年份。然后,我使用GROUP_CONCAT将它们组合在一起,每年将它们与,分离开来。然后,我使用CONCAT在字符串的前端和末尾添加括号。

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

https://stackoverflow.com/questions/19916473

复制
相关文章

相似问题

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