在 SQL 的同一列中返回 MONTH 和 YEAR

Posted

技术标签:

【中文标题】在 SQL 的同一列中返回 MONTH 和 YEAR【英文标题】:Returning MONTH and YEAR in the same column in SQL 【发布时间】:2013-06-05 19:22:20 【问题描述】:

目前我有一个返回 MONTH、YEAR、COUNT(*) 的查询。

我正在使用的图表程序需要将日期字段放在一个单元格中。我正在制作月度图表,因此我需要将每个月(例如 2011 年 1 月)返回为 2011-01-31(最好是每个月的最后一天。

为了弥补我可能留下的任何漏洞:我有很多人在我的网站上注册的日期。我只需要返回一个两列查询:

|年月 |计数(*)|

提前感谢大家的帮助!如果我需要澄清任何部分,请告诉我。

【问题讨论】:

嗯,你有什么尝试? 我已经构建了返回 MONTH YEAR COUNT* 的视图。我正在考虑使用 cast 或 convert 尝试将两个 MNTH/YR 列合并为一个。 我对此的超级迂回解决方案将是一个表,我将每个时间戳的每一天都转换为 01,然后运行 ​​DATE、COUNT* 的查询。但这只是因为我在想超级开箱即用,因为我正在抓住稻草。 @Patrick 谢谢你,看起来很有帮助。试试看! 【参考方案1】:

您可以使用DATE_FORMAT 组合它们:

SELECT DATE_FORMAT(myDateColumn, '%Y-%m'), COUNT(*)
FROM myTable
GROUP BY DATE_FORMAT(myDateColumn, '%Y-%m')
ORDER BY 1

【讨论】:

【参考方案2】:

date_format() function 可能就是您要找的。​​p>

select date_format(your_column_name, '%Y-%m')
from your_table;

【讨论】:

以上是关于在 SQL 的同一列中返回 MONTH 和 YEAR的主要内容,如果未能解决你的问题,请参考以下文章

当同一列中的值不匹配但不同列重复时将返回结果的 SQL 查询

SQL查询以选择在同一列中具有不同值的子记录的父级

一个月中出现奇怪结果的天数

我们如何在sql表的同一列中添加两个字段?

我如何检查所有行是否在同一列中具有相似的数据

SQL / Presto SQL:在同一列中按组求和