MySQL仅从具有DATETIME的行中选择可用月份

时间:2014-09-12 22:03:49

标签: mysql sql datetime group-by

我有一张类似

的表格
 id    |    title    |    text    |    time_and_date (DATETIME)

现在我想找出可用的月份,
在time_and_date中可以有0-X行包含相同的月份。

根据我在查询中的WHERE(甚至已经完成了那部分),甚至可以提供更好的月份。

所以从表格

   id     |     title      |     text      |    time_and_date (DATETIME)
    5     |    'title1'    |    'text1'    |    '2008-12-24 07:00:00'
    7     |    'title2'    |    'text2'    |    '2008-11-24 12:20:11'
   20     |    'title3'    |    'text3'    |    '2008-08-24 06:00:57'
    1     |    'title4'    |    'text4'    |    '2008-08-24 19:20:45'

结果应该是

12
11
08

请注意:
1)如果有多个行具有相同月份,则该月份仅返回一次
2)如果没有一个月的行 - 那个月根本没有退回。

我知道(我猜)这是一个完美的“GROUP BY案例”,但我无法弄清楚如何构建此查询。

即使指出正确的方向,我也会感激不尽: - )

我的最终解决方案

条目中

仅选择当前或未来可用年份+月”:

SELECT DISTINCT MONTH(time_and_date) month, YEAR(time_and_date) year
 FROM entries
 WHERE time_and_date>=NOW()
 ORDER BY time_and_date DESC

1 个答案:

答案 0 :(得分:2)

SELECT DISTINCT MONTH(time_and_date) AS month

DISTINCT表示只返回每次出现的值一次,MONTH()仅返回月份(不是整个日期),AS部分不是强制性的(仅用于创建列名称) “正常”)