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

Requêtes MySQL Discussion :

DATEDIFF() qui ne marche pas sur une version 5.0.xx


Sujet :

Requêtes MySQL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut DATEDIFF() qui ne marche pas sur une version 5.0.xx
    Bonjour,

    Je suis embetté parce que j'ai mis à jour mon mysql qui etait en 3.x vers une 5.0 pour profiter de la fonction DATEDIFF() qui retourne la différence en jours entre 2 dates.

    Le problème, c'est j'ai cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #1305 - FUNCTION gesam.DATEDIFF does not exist
    (gesam c'est le nom de ma base)

    lorsque fais cette requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select noarret, datedebut,datefin, DATEDIFF(datedebut,datefin) As NbJours  from arrets
    pourtant ma version de mysql est bien une 5.0.21-community ...

    merci d'avance pour votre aide !

  2. #2
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    C'est étonnant. Je suis allé lire la documentation pour vérifier. Datediff est bien disponible en V5.0. D'ailleurs, c'est disponible depuis la version 4.1.1 :

    http://dev.mysql.com/doc/refman/5.0/...functions.html
    DATEDIFF(expr,expr2) DATEDIFF() retourne le nombre de jours entre la date de début expr et la date de fin expr2. expr et expr2 sont des expressions de type DATE ou DATETIME. Seule la partie DATE est utilisée dans le calcul.
    mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
    -> 1
    mysql> SELECT DATEDIFF('1997-11-31 23:59:59','1997-12-31');
    -> -30
    DATEDIFF() est disponible depuis MySQL 4.1.1.

    Esssayons d'exclure les parasites. Que te retournes la simple requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    Cette requête marche très bien, elle me retourne 1.

    Pour info voici la structure des champs concernés dans la table :

    dateDebut datetime Non 0000-00-00 00:00:00

    dateFin datetime Non 0000-00-00 00:00:00

  4. #4
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Citation Envoyé par vallica
    Cette requête marche très bien, elle me retourne 1.
    Elle devrait retourner -1.

    Citation Envoyé par vallica
    Pour info voici la structure des champs concernés dans la table :

    dateDebut datetime Non 0000-00-00 00:00:00

    dateFin datetime Non 0000-00-00 00:00:00
    Là je sèche complètement. Je ne vois pas pourquoi la est reconnue dans la seconde requête et pas dans la première ! La seule piste est le mot gesam dans ton message d'erreur. gesam, est-ce le nom de ta base ?
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    oui c'est le nom de ma base

Discussions similaires

  1. [MySQL] Une requête qui ne marche pas sur tous les enregistrements
    Par Marc22 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 21/04/2010, 13h20
  2. Requête qui ne marche pas sur une table Joomla.
    Par tintin72 dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/02/2010, 17h51
  3. Réponses: 14
    Dernier message: 27/08/2006, 19h47
  4. Réponses: 3
    Dernier message: 08/09/2003, 15h06
  5. Réponses: 9
    Dernier message: 07/05/2003, 12h57

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