30 sql
这可能是一个简单的where子句,但我想说,从columnX(这是datetime)我想要所有行只有年份= 2010.
所以:
select * from mytable where Columnx =
Run Code Online (Sandbox Code Playgroud)
Die*_*ego 41
select * from mytable where year(Columnx) = 2010
Run Code Online (Sandbox Code Playgroud)
关于索引使用(回答Simon的评论):
如果你有一个关于Columnx的索引,如果你使用函数"year"(或任何其他函数),SQLServer将不会使用它.
有两种可能的解决方案,一种是按间隔进行搜索,如Columnx> ='01012010'和Columnx <='31122010',另一种是创建一个带有年份(Columnx)表达式的计算列,索引它,以及然后对这个新列进行过滤
Sim*_*mon 25
如果我明白你想要在2010年的所有行,那么:
select *
from mytable
where Columnx >= '2010-01-01 00:00:00'
and Columnx < '2011-01-01 00:00:00'
Run Code Online (Sandbox Code Playgroud)
T-SQL等;
select * from t where year(Columnx) = 2010
Run Code Online (Sandbox Code Playgroud)