我有一张类似
的表格 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
答案 0 :(得分:2)
SELECT DISTINCT MONTH(time_and_date) AS month
DISTINCT
表示只返回每次出现的值一次,MONTH()
仅返回月份(不是整个日期),AS
部分不是强制性的(仅用于创建列名称) “正常”)