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 :

Comparer une date avec la date du jour


Sujet :

Développement SQL Server

  1. #21
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Mais non, les premiers prints c'était quand votre besoin était de comparer par rapport à la date du jour. Alors les formules sont justement là pour dire le jour même à minuit (12:00 AM) et le lendemain à minuit (avec un strictement inférieur).

    Maintenant si votre besoin c'est juste d'être entre une date x et la date du jour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WHERE Champ_Date > date_x
      AND Champ_Date <= getdate()

  2. #22
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Mais non, les premiers prints c'était quand votre besoin était de comparer par rapport à la date du jour. Alors les formules sont justement là pour dire le jour même à minuit (12:00 AM) et le lendemain à minuit (avec un strictement inférieur).

    Maintenant si votre besoin c'est juste d'être entre une date x et la date du jour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WHERE Champ_Date > date_x
      AND Champ_Date <= getdate()

    J'ai cru avoir lu "between" mais là je ne la vois plus. l'as tu changé ?

    le between prend les deux bornes aussi je pense.

  3. #23
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Oui j'ai édité car between prend également les deux bornes :
    A BETWEEN B AND C

    est équivalent à :
    A >= B AND A <= C

    Et ce n'était pas votre besoin.

  4. #24
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Points : 103
    Points
    103
    Par défaut [RÉSOLU]
    Citation Envoyé par Waldar Voir le message
    Oui j'ai édité car between prend également les deux bornes :
    A BETWEEN B AND C

    est équivalent à :
    A >= B AND A <= C

    Et ce n'était pas votre besoin.
    C'est bien

    Merci beaucoup Waldar

  5. #25
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Mais non, les premiers prints c'était quand votre besoin était de comparer par rapport à la date du jour. Alors les formules sont justement là pour dire le jour même à minuit (12:00 AM) et le lendemain à minuit (avec un strictement inférieur).

    Maintenant si votre besoin c'est juste d'être entre une date x et la date du jour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WHERE Champ_Date > date_x
      AND Champ_Date <= getdate()
    La plus part des données de la colonne "Champ_Date " contiennent une date avec jj/mm/aaaa hh:mm:ss

    mais quelques lignes contiennent juste : jj/mm/aaaa

    et d'autres lignes contiennent le mot : Null

    est-ce que ceci pourrait nuire aux traitements sur cette colonne ?

    Merci.

  6. #26
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    La plus part des données de la colonne "Champ_Date " contiennent une date avec jj/mm/aaaa hh:mm:ss

    mais quelques lignes contiennent juste : jj/mm/aaaa
    Si votre colonne est de type DATETIME, cela n'est pas possible.
    Avez-vous voulu plutôt dire que la "partie" heure de votre donnée est valuée à 0 ?
    Ce que vous voyez s'afficher dans SQL Server Management Studio ou l'Analyseur de requêtes n'est qu'une représentation du type DATETIME.
    Celle-ci peut changer suivant la langue dans laquelle a été installé l'instance SQL Server, l'option SET LANGUAGE, ...
    Les valeurs que stocke le type DATETIME sont deux entiers de 4 octets chacun, un pour la date et un pour l'heure.

    et d'autres lignes contiennent le mot : Null
    NULL est plus exactement un marqueur qui indique que la colonne n'est pas valuée pour cette ligne. Attention : NULL n'est pas une valeur.

    est-ce que ceci pourrait nuire aux traitements sur cette colonne ?
    Pour les traitements par rapport à la date du système, j'ai plutôt tendance à stocker celle-ci dans une variable de type DATETIME, et ensuite d'écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DECLARE @maintenant DATETIME SET @maintenant = GETDATE()
     
    SELECT ...
    FROM ...
    WHERE Champ_Date > date_x
      AND Champ_Date <= @maintenant
    Il n'y a pas de raison que cela nuise au traitement, et vous obtiendrez des performances encore meilleures en indexant proprement cette table.

    @++

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Comparer une date avec la date du jour
    Par Med_be dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 29/05/2011, 18h24
  2. Renommer une feuille avec la date du jour
    Par Oh!Tofocus dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 09/08/2007, 08h21
  3. Réponses: 1
    Dernier message: 03/07/2007, 06h43
  4. Réponses: 9
    Dernier message: 14/06/2007, 16h43
  5. [Dates] Comparer une variable avec 2 éléments
    Par oceane751 dans le forum Langage
    Réponses: 14
    Dernier message: 07/01/2007, 17h54

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