0

我面临需要从表中删除记录的情况。

场景是:第一个表有一些日期值,第二个表只包含年终(日期)记录。如果第一个表的值不在第二个表中,我需要从第一个表中删除此记录。

以下是第一个表中的日期值

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

注意: 第二个表仅包含年终日期。

如何做到这一点?

4

2 回答 2

0

这应该很简单

Delete from Table1 where Table1DateField not in (select Table2DateField from Table2)
于 2012-04-05T05:56:59.597 回答
0

通过使用这个

select CONVERT(varchar(8),GETDATE(),5)

您可以获得该日期的 varchar 字符串,即05-04-12您可以将您的日期作为这种格式的 varchar 字符串进行比较,并轻松删除记录。

于 2012-04-05T05:59:38.380 回答