admin

SQL从年份= 2010的列中选择*

sql

这可能是一个简单的where子句,但我想说的是,从columnX(日期时间)开始,我希望所有年份都为year = 2010的行。

所以:

select * from mytable where Columnx =

阅读 138

收藏
2021-05-10

共1个答案

admin

select * from mytable where year(Columnx) = 2010

关于索引用法(回答Simon的评论):

如果在Columnx上有索引,则如果使用函数“ year”(或任何其他函数),则SQLServer将不会使用该索引。

有两种可能的解决方案,一种是按时间间隔进行搜索,例如Columnx> =‘01012010’和Columnx
<=‘31122010’,另一种方法是使用year(Columnx)表达式创建一个计算列,对其进行索引,然后然后在此新列上进行过滤

2021-05-10