mysql从datetime字段获取所有可能的月份

时间:2011-12-30 14:08:13

标签: mysql datetime archive

所以我有一张包含数百条记录的表格。并且具有带有日期时间格式的文件名“已创建”类型。现在我想用几个月来制作和存档。例如1月,2月....等我需要创建查询以查找所有可能的月份。例如,如果我的记录从2011/05/01开始到现在,我将需要获取月份5,6,7,8,9,10,11,12。 有没有办法呢???

2 个答案:

答案 0 :(得分:3)

如果您正在查看created字段中所有月份的列表(据我了解您的查询),请执行以下操作:

SELECT DISTINCT(MONTH(created)) FROM posts;

结果集将是该字段中唯一月份的列表。如果这会抱怨,请尝试:

SELECT DISTINCT(MONTH(DATE(created))) FROM posts;

然后,您可以将MONTH替换为MONTHNAME并获取名称。我没有在这些查询中添加WHERE子句,但您可以根据需要限制所查看的数据集。

有关更多信息,请查看http://dev.mysql.com/doc/refman/5.1/en/functions.html,其中列出了MySQL本身提供的一些功能。

答案 1 :(得分:1)

是的,使用DATE_FORMAT功能和其他日期和时间功能。

更多详情here

例如,如果您想要2011年12月的所有记录:

SELECT * FROM posts WHERE YEAR(created) = 2011 AND MONTH(created) = 12