Sql 如何获取日期的id

Sql 如何获取日期的id,sql,sql-server,sql-server-2000,Sql,Sql Server,Sql Server 2000,表1 如果日期超过6个月,我想从表1中选择id 表1的预期产出 身份证日期 id dates 01 23/02/2011 02 24/04/2011 03 26/08/2011 ... 如何进行查询 需要查询帮助从表1中选择id,其中datediff(m,dates,getdate())>=6选择id,dates 01 23/02/2011 'Dates is older than 6 month 02 24/04/2011 'Dates is older than 6 month 来自表

表1

如果日期超过6个月,我想从表1中选择id

表1的预期产出

身份证日期

id dates

01 23/02/2011
02 24/04/2011
03 26/08/2011
...
如何进行查询


需要查询帮助

从表1中选择id,其中datediff(m,dates,getdate())>=6
选择id,dates
01 23/02/2011 'Dates is older than 6 month
02 24/04/2011 'Dates is older than 6 month
来自表1 其中日期<日期添加(月-6,getdate())
你试过什么吗?-1它会对每一行执行datediff,最好按照@MikaelEriksson的建议执行。@MichałPowaga:没关系。我刚刚检查过,SQL Server 2008 R2为
日期diff
日期添加
(索引搜索或pk扫描)生成了完全相同的执行计划,无论是否在
日期上使用索引,这两种情况下都是正确的
表扫描
,但如果@MikaelEriksson查询中有索引,则可以使用
index seek
。因此,如果有机会获得表演,最好这样做。
select id, dates
from Table1
where dates < dateadd(month, -6, getdate())