如何使用月/年从表中获取记录?我有一张这样的桌子:
Name - varchar
DueDate -datetime
Status -boll
DueDate
是项目截止日期,我想要记录对应月/年,而不是完整日期,我的意思是特定月份的记录。
我怎样才能在mysql中执行此操作?
答案 0 :(得分:53)
答案 1 :(得分:27)
您可以使用之间的声明:
select * from Project
where DueDate between '2010-01-01' and '2010-02-01'
答案 2 :(得分:6)
请勿在{{1}}和MONTH()
使用此推荐的解决方案。它阻止MySQL在列YEAR()
上使用索引(如果有),它会强制MySQL检查表中的所有行。
相反,请使用DueDate
这样的句子:
BETWEEN
或使用IN子句的另一种解决方案:
SELECT * FROM Project
WHERE DueDate BETWEEN '2010-01-01' AND '2010-02-01'
这两个解决方案允许MySQL使用索引,因此性能会更好。
答案 3 :(得分:4)
SELECT Name FROM Table Where MONTH(datetime) = 1;
1 = 1月。
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_month
答案 4 :(得分:3)
它将选择当前年度的特定月份
SELECT * FROM Project WHERE MONTH(DueDate) = 1 AND YEAR(DueDate) = YEAR(NOW())
答案 5 :(得分:1)
答案 6 :(得分:1)
SELECT * WHERE MONTH(DueDate) = '5' AND YEAR(DueDate) = '1987';
答案 7 :(得分:1)
如果输入月份格式“ Y-m”,则可以使用:
SELECT * FROM Project WHERE DATE_FORMAT(DueDate,"%Y-%m") = '2010-01'
答案 8 :(得分:0)
SELECT * FROM TABLE WHERE DueDate LIKE '2020-01%';
以防万一您可以将日期数据细分为字符串。