Sql 如何获取日期的id
表1 如果日期超过6个月,我想从表1中选择id 表1的预期产出 身份证日期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 来自表
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())