我正面临一个需要从表中删除记录的情况。
情景是: 第一个表有一些日期值,第二个表只包含年终(日期)记录。如果第一个表的值不在第二个表中,我需要从第一个表中删除该记录。
以下是第一个表格中的日期值
2009-06-30 00:00:00.000
2009-12-31 00:00:00.000
2011-11-30 00:00:00.000
2011-12-31 00:00:00.000
以下是第二个表格中的日期值
2005-12-31 00:00:00.000
2006-12-31 00:00:00.000
2007-12-31 00:00:00.000
2009-12-31 00:00:00.000
这里比较两个表,第一个表的日期值('2011-12-31 00:00:00.000 ')不在第二个表中。因此,我需要在第一个表中单独删除此记录。
我正在使用以下查询,但我没有得到所需的结果。
使用了查询
Select tmp.* from #temp tmp
Inner Join #temp1 tmp1
On tmp.Val_DT != tmp1.ye_dt
Where DATEPART(mm,tmp.Val_dt) = 12
注意: 第二个表仅包含年终日期。
如何实现这一目标?
答案 0 :(得分:0)
这应该很简单
Delete from Table1 where Table1DateField not in (select Table2DateField from Table2)
答案 1 :(得分:0)
使用此
select CONVERT(varchar(8),GETDATE(),5)
您可以获取该日期的varchar字符串,即05-04-12
,您可以将此日期与此格式的varchar字符串进行比较,并轻松删除记录。