sql - 从今天的年份中选择大于 5 年前的所有年份

标签 sql sql-server tsql sql-server-2008-r2

 a          b
 1          2009
 2          2007
 3          2006
 4          2010
 5          2011

我如何从今天的年份中选择大于 5 年前的所有年份?

So it would be like 2013(year today) - 5 = 2008
 a          b
 1          2009
 4          2010
 5          2011

我试过这个:

select * from table1 where b > CURRENT_TIMESTAMP - 5

我使用 smallint 作为 b 列的数据类型而不是日期,因为我将只存储年份。使用 small int 存储年份安全吗?

最佳答案

select * from table1 where b > DATEADD(YEAR,-5,GETDATE())

应该也可以

关于sql - 从今天的年份中选择大于 5 年前的所有年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18342262/

相关文章:

sql-server - select 1 和 select * 哪个更好来检查记录的存在?

sql - 插入所有输入项组合的最佳方法

sql-server - SQL Server 中的家谱树

mysql - 按各种列(具有各种联接)进行分组,但对不同的其他列进行求和

SQL批量删除

sql - oracle中使用sql或plsql进行条件删除

sql - 选择...其中值类似于 '%...%'

sql - 拥有 sys.objects 和 sys.columns 时需要 information_schema

sql - 是否有数组的 SQL 参数绑定(bind)?

sql - 当条件为 <> true 时,为什么 PostgreSQL 不返回空值