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

MS SQL Server Discussion :

Comparaison entre dates


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Par défaut Comparaison entre dates
    Bonjour voici ma requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $init ='SELECT PERS.NOM_ ,PERS.PRENOM_ , SAL.MATRICULE_ , AFC1.TEXTE_  as TEXTE1, AFC2.TEXTE_ as TEXTE2 , CAL.DATE_FIN_'
    	 . ' FROM  '.$Table_pers.' PERS , '.$Table_sal.' SAL , '.$Table_affec.' AFC1, '.$Table_affec.' AFC2 , '.$Table_cal.' CAL'
    	 . ' WHERE  PERS.PERSONNE_ = SAL.PERSONNE_'
    	 . ' AND PERS.PERSONNE_ = AFC1.SALARIE_ '
    	 . ' AND PERS.PERSONNE_ = AFC2.SALARIE_ '
    	 . ' AND AFC1.TITRE_ZONE_="2" '
    	 . ' AND AFC2.TITRE_ZONE_="3" '
    	 . ' AND SAL.PERSONNE_ = CAL.SALARIE_'
    	 . ' AND CAL.DATE_FIN_ = NULL'
    	 . ' AND CAL.DATE_FIN_ < CURENT_DATE'
    	 . ' ORDER BY PERS.NOM_,PERS.PRENOM_;';
    J'ai un souci avec cette portion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    . ' AND CAL.DATE_FIN_ < CURENT_DATE'
    Il me retourne une erreur qui semble logique car :
    -Cette fonction n'existe pas en MSSQL (je crois = http://sqlpro.developpez.com/cours/sqlaz/fonctions/)
    - LA date que j'exploite et de type date : DD/MM/YYYY
    Commment je peut faire la comparaison avec la date d'aujourdh'ui de telle manière que j'ai tout ce qui antérieur à aujourd'hui.
    Je sais que sous Oracle c'est date < sysdate .Mais en MSSQL

    Merci pour votre réponse .

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Par défaut
    La date systeme se récupère comme suit sous SQL Server:


  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Par défaut
    Le mieu est de creer une fonction php qui me retourne la date courante formatée en francais et l'utiliser dans ma requete ?

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Par défaut
    Je fiouille sur internet sans trop de resultat j'ai l'erreur suivante :
    Warning: mssql_query() [function.mssql-query]: message: 'CURDATE' is not a recognized function name. (severity 15) in /home/httpd/dev/badges/search.php on line 143
    Que dois-je faire et sourtout comment faire la comparasion de date dans mon cas ?

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut comparaison de date.
    je compare le jour, le mois et l'annee.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    'SELECT PERS.NOM_ ,PERS.PRENOM_ , SAL.MATRICULE_ , AFC1.TEXTE_  as TEXTE1, AFC2.TEXTE_ as TEXTE2 , CAL.DATE_FIN_'
    	 . ' FROM  '.$Table_pers.' PERS , '.$Table_sal.' SAL , '.$Table_affec.' AFC1, '.$Table_affec.' AFC2 , '.$Table_cal.' CAL'
    	 . ' WHERE  PERS.PERSONNE_ = SAL.PERSONNE_'
    	 . ' AND PERS.PERSONNE_ = AFC1.SALARIE_ '
    	 . ' AND PERS.PERSONNE_ = AFC2.SALARIE_ '
    	 . ' AND AFC1.TITRE_ZONE_="2" '
    	 . ' AND AFC2.TITRE_ZONE_="3" '
    	 . ' AND SAL.PERSONNE_ = CAL.SALARIE_'
    . ' AND DAY(CAL.DATE_FIN_) < DAY(GETDATE())'
    . ' AND MONTH(CAL.DATE_FIN_) < MONTH(GETDATE())'
    . ' AND YEAR(CAL.DATE_FIN_) < YEAR(GETDATE())'
      . ' ORDER BY PERS.NOM_,PERS.PRENOM_;'

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Par défaut
    Il y a la possibilité d'utiliser la fonction DATEDIFF
    Cette fonction fait la différence entre deux champ datetime.
    Il faut indiquer le partie de la date sur laquelle on fait la différence : jour,mois,année,seconde,minutes
    Ensuite une date de début et une date de fin.
    La fonction renvoie un entier ou un float positif ou négatif.
    Positif : date de début < date de fin
    Négatif : date de début > date de fin

    Tu pourras ensuite manipuler le résultat à ta guise.

  7. #7
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Par défaut
    Bonjour ,
    Merci pour ces réponses mais la requete ne me retourne plus rien du coup (l'erreur est partie ) .
    Le format de DATE_FIN_ est datetime est ce que le fait que ce soit ce format ne pose pas de probleme ?

    La fonction datediff sert a retouner une valeur or dans mon cas je ne veut pas de valeur mais simplement que les items avant la date d'aujourd'hui soit affichés.

    PS: Je ne peut rien modifier dans la base dans la mesure ou je n'ai les droits qu'en lecture .

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comparaison entre dates
    Par madina dans le forum Requêtes
    Réponses: 4
    Dernier message: 08/07/2011, 13h48
  2. Comparaison entre date et exercice
    Par gentilman_delphi dans le forum Débuter
    Réponses: 5
    Dernier message: 22/03/2008, 14h29
  3. [Date] comparaison entre dates
    Par *alexandre* dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 03/11/2006, 11h17
  4. Réponses: 6
    Dernier message: 18/04/2006, 13h11
  5. [Dates] Comparaison de date entre deux IP (anti-flood)
    Par psychoBob dans le forum Langage
    Réponses: 79
    Dernier message: 23/12/2005, 17h19

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