从SQL中选择月份和年份

3

如果我有一个包含时间戳的列,比如2010-04-01 10:40:20,我该如何使用SQL从2011年十月份中选择所有内容?

2个回答

6
SELECT *
FROM yourtable
WHERE col1 >= '2011-10-01' AND col1 < '2011-11-01'

2

尝试这个:

SELECT * FROM table WHERE MONTHNAME(filed_date) = 'October' AND YEAR(field_date)='2011'

1
为什么我会选择 MONTH 而不是 MONTHNAME,例如 WHERE MONTH(filed_date) = 10 ...,因为它稍微快一点。 - ain
因为我认为他输入的是标签而不是月份的值。因此我使用了MonthName函数。 - JellyBelly
1
@ain 在性能方面不会有太大的差异,最大的问题是 MONTHNAME 取决于数据库连接语言设置。 - Karolis
2
这个查询的另一个大问题是它不能使用索引,因为WHERE子句基于函数。 - Karolis
所以你的意思是,如果我输入了单词“十月”,要创建两个变量应该是“2011-10-01”和“2011-10-31”,并使用查询Mark Byers? - JellyBelly
@JellyBelly 是的,最好转换输入值而不是列值。 - Karolis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接