2010-07-20 74 views
2

我有一張表,我每天都會輸入數據。但我不希望這些數據被其他用戶修改。所以我將這些數據備份到另一張表中:sql中的日期問題

INSERT INTO tbl_cancel_backup 
    SELECT tbl_cancel.[cdate] AS 'cdate', 
     tbl_cancel.[machine_no] As 'No', 
     Sum(tbl_cancel.[amount]) AS 'Total' 
    FROM tbl_cancel 
    WHERE tbl_cancel.[Cdate][email protected] 
GROUP BY tbl_cancel.[Machine_no], tbl_cancel.[cdate]; 

此操作後,我想刪除2天前的記錄。我如何將下面的代碼修改爲正確的代碼?

DELETE FROM tbl_cancel WHERE cdate = CONVERT (date, GETDATE()-2); 

感謝大家。

+2

對於什麼數據庫?我問,因爲SQL代表「結構化查詢語言」,而不是「標準化查詢語言」...... – 2010-07-20 20:43:34

回答

1

你想用DateAdd T-SQL

http://msdn.microsoft.com/en-us/library/ms186819.aspx

DELETE FROM tbl_cancel WHERE cdate <= DATEADD(d, -2, GETDATE())

+0

只有鏈接回答後,我已經發布的SQL,然後粘貼完全相同的SQL後......並越來越更多的投票...打得好 – heisenberg 2010-07-20 21:07:10

+0

Thaks幫助我。就像一個字符... – Hakan 2010-07-20 21:54:58

+0

@kekekela - 其實我是第一次發佈,但是當我更新它時,它改變了我發佈的日期。我沒有偷你的答案! – 2010-07-21 14:00:12

1

從tbl_cancel刪去CDATE < = DATEADD(d,-2,GETDATE())

0

你可以嘗試使用DATEADD語法:

DELETE FROM tbl_cancel WHERE cdate <= CONVERT (date, DATEADD(dd,-2,GETDATE());