这可能是一个简单的where子句,但我想说,在columnX (即datetime)中,我想要年份= 2010的所有行。
所以:
select * from mytable where Columnx =
发布于 2012-03-27 21:59:15
select * from mytable where year(Columnx) = 2010
关于索引的使用(回答Simon的评论):
如果您在Columnx上有一个索引,那么如果您使用函数"year“(或任何其他函数),SQLServer将不会使用它。
有两种可能的解决方案,一种是按时间间隔进行搜索,如Columnx>='01012010‘和Columnx<='31122010’;另一种是使用year(Columnx)表达式创建一个计算列,对其进行索引,然后对这个新列进行过滤
发布于 2012-03-27 22:00:36
如果我了解到您想要2010年的所有行,那么:
select *
from mytable
where Columnx >= '2010-01-01 00:00:00'
and Columnx < '2011-01-01 00:00:00'
发布于 2012-03-27 21:59:05
T-SQL等;
select * from t where year(Columnx) = 2010
https://stackoverflow.com/questions/9891025
复制相似问题