Sql查询 - 需要根据Datefield提取记录

时间:2012-09-04 13:35:43

标签: sql sql-server

我需要从Table1中提取数据并在每个月的最后一个星期一将其插入Table2。我的表的基本版本是这样的..

表1(ID,名称,有效日期)

表2(ID,Name,EffectiveDate,ProcessDate)

我想只提取那些有效日期是当前日期4个月的记录(例如:如果EffectiveDate是1月1日那么它应该在4月1日之后提取......)。实际上Table2用于报告目的,所以我们有'processDate'字段,我们可以在过滤时使用。

任何帮助都会受到赞赏。谢谢

编辑:

嗯,我知道我们可以做这样的事情

EffectiveDate< DATEADD(MM,-4,GETDATE())

1 个答案:

答案 0 :(得分:1)

这样的东西?

SELECT * FROM Table1 WHERE EffectiveDate >= DATEADD(mm, -4, GETDATE()) 

更新

所以你想要4个月之前的所有记录?然后只需切换<操作者:

SELECT * FROM Table1 WHERE EffectiveDate <= DATEADD(mm, -4, GETDATE()) AND processed = 0

更新2:

试试这个:

SELECT 
    * 
FROM Table1 
    LEFT JOIN Table2 ON Table1.ID = Table2.ID 
WHERE 
    Table1.EffectiveDate <= DATEADD(mm, -4, GETDATE())
    AND Table2.ProcessedDate IS NULL