2010-07-20 12 views
2

J'ai une table dans laquelle je saisis des données chaque jour. Mais je ne veux pas que ces données soient modifiées par d'autres utilisateurs. Je suis donc de sauvegarder ces données à une autre table en utilisant:Date d'émission en m²

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]; 

Après cette opération, je voudrais supprimer des enregistrements qui sont 2 jours plus tôt. Comment dois-je modifier le code ci-dessous pour fonctionner correctement?

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

Merci à tout le monde.

+2

Pour quelle base de données? Je demande parce que SQL signifie "Structured Query Language", pas "Standardized Query Language" ... –

Répondre

1

Vous voulez utiliser DateAdd T-SQL

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

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

+0

répondu avec seulement le lien après que j'avais déjà posté le sql, puis collé exactement le même sql après cela ... et obtenir plus de votes ... bien joué – heisenberg

+0

Thaks pour m'aider. Travailler comme un char ... – Hakan

+0

@kekekela - En fait, j'ai posté le premier mais il a changé ma date d'affichage quand je l'ai mis à jour. Je n'ai pas volé ta réponse! –

1

supprimer tbl_cancel où cdate < = dateadd (d, -2, getdate())

0

Vous pourriez essayez d'utiliser la syntaxe DATEADD:

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