IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Suppression date j-1


Sujet :

Développement SQL Server

  1. #1
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut Suppression date j-1
    bonjour a tous
    au début je suis débutant en terme transact ,mais j'ai commencer a apprendre les chose
    Aujourd’hui j'ai eu une demande qui consiste a mettre en place un script sur un table nommé "Historique_Stock" qui permet de garder juste l’historique du Jour Actuelle et supprimer le reste ?
    Pour cela j'ai penser a exécuter cette requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    delete FROM Historique_Stock 
    WHERE DateCRE < DATEADD(day,-1,getdate());
    ma collègue ma demander d’exécuter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    delete FROM Historique_Stock 
    WHERE DateCRE < convert(VARCHAR,getdate(), 103)
    qu'elle est la requête la plus correcte qui permet de répond a ma besoin juste pour info le colonne DateCRE il est de type datetime

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Points : 674
    Points
    674
    Par défaut
    la requete de ta collegue est bonne car elle va supprime toute les dates inférieur a la date du jour.

    Si tu as un doute joue le script suivant et vérifie les données qui vont etre supprimé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT * 
    FROM Historique_Stock 
    WHERE DateCRE < convert(VARCHAR,getdate(), 103)
    PERSO j'aurais meme joué la requete suivante si DATECRE est du type DateTime

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT * 
    FROM Historique_Stock 
    WHERE cast(DateCRE as date ) < cast(getdate() as date)
    Mais j'ai une question pourquoi as tu chercher a calculer la date de la veille si tu cherches a supprimer toute les données inférieur a la date du jour ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATEADD(day,-1,getdate())
    Cette fonction te retourne la veille du jour actuel
    MCSA SQL SERVER |MCT | MVP Data Platform

  3. #3
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Avec votre requête, si elle est exécutée un jour J à 18h, elle ne supprimera que les données antérieures au jour J-1 à 18h, ce qui ne correspond pas exactement à la demande.

    Votre collègue a donc raison.

    Pour la forme, j'éviterais toutefois un transtypage en varchar, et je ferais ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    delete FROM Historique_Stock 
    WHERE DateCRE < CAST(CAST(getdate() AS DATE) AS DATETIME)

Discussions similaires

  1. Suppression date inférieur à la date MAX
    Par drumtof dans le forum Oracle
    Réponses: 3
    Dernier message: 04/07/2011, 16h04
  2. Requete suppression date
    Par hugoclo dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 17/02/2008, 21h51
  3. Script de suppression de fichiers en fonction de la date
    Par yellow174 dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 06/02/2006, 11h57
  4. Requete de suppression avec en condition une date
    Par PrinceMaster77 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/04/2004, 09h23
  5. Réponses: 4
    Dernier message: 16/04/2004, 08h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo