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 :

WHERE DATE() ne fonctionne plus en v5.0.45?


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut WHERE DATE() ne fonctionne plus en v5.0.45?
    Bonjour,

    Je viens de commander un nouveau VPS.

    Mon champs maDate est un datetime

    Sur l'ancien avec mySql 5.0.27, la requete suivante m'affiche des résultats:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT date( maDate ) AS AfficheMoi FROM membre WHERE date( maDate ) = '2009-10-06'
    Sur le nouveau avec mySql 5.0.45, elle n'affiche aucun résultat

    Et pourtant si j'enlève le where, j'ai le bon formattage qui s'affiche pour le champs aliasé AfficheMoi .

    Je ne souhaite pas changer toutes mes requetes.
    Je précise que j'ai bien des résultats en parcourant ma table.

    C'est incompréhensible....

    Merci pour votre aide.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 113
    Points : 61
    Points
    61
    Par défaut
    Salut,

    j'ai le meme soucis ...

    Si qqn avait une reponse, ca serait cool !

    merci d'avance

  3. #3
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    Bonjour,

    Le problème ne viendrais pas de l'alias ?
    Show est n mot clé réservé à MySQL.

  4. #4
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    Non, ce n'était meme pas l'alias que j'utilisais, je l'ai changé pour ne pas brouiller les pistes.

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    DATE est un mot réservé de SQL comme TYPE et autres. Lisez la liste que j'ai établis : http://sqlpro.developpez.com/cours/motsreserves/
    Nommer une colonne DATE ou TYPE est aussi stupide que de déclarer une variable de nom WHILE, IF, FUNCTION ou PROCEDURE dans PHP, java ou C#.

    Commencez par respecter la norme SQL en évitant de telle horreurs. Pour mémo voici comment on nomme un objet dans SQL : http://sqlpro.developpez.com/cours/s...age=partie1#L1

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    A quel moment ai je nommé un champs avec un mot réservé?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT date( maDate ) AS AfficheMoi FROM membre WHERE date( maDate ) = '2009-10-06'
    JE précise que je peux nomme le champs maDate ou AfficheMoi en n'importe quoi ca donne le même résultat...
    Ici les noms ne sont que pour être plus explicites, les miens sont différents et fonctionnait très bien sur l'ancien serveur.

    Je pense que tu as mal lu mon post.

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Mea culpa...

    Il faut dire que ce que vous avez fait et que MySQL héals permet n'est pas du SQL loin s'en faut. En effet pour typer une colonne c'est pas :

    qui faut faire, mais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CAST( macolonne AS DATE).
    Ce style de cochonnerie "DATE ( macolonne )" qui est propre à, MySQL n'existe pas dans le langage SQL...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  8. #8
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    mais je suis en mySQL.... pas en SQL... et apparement DATE() existe bien... et a toujours fonctionné depuis plus de 5 ans sur différents serveurs, c'est juste sur ce dernier serveur que ca passe pas...

  9. #9
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    D'après la documentation MySQL :
    DATE(expr) Extrait la partie date de l'expression expr de type DATE ou DATETIME.
    mysql> SELECT DATE('2003-12-31 01:02:03');
    -> '2003-12-31'
    DATE() est disponible depuis MySQL 4.1.1.
    Quand j'essaie l'exemple ci-dessus sur MySQL 5.1.34, ça fonctionne parfaitement.
    Il serait étonnant que ça fonctionne en 4.1.1 et en 5.1.34 et pas en 5.0.27 !

    Ceci dit, je vous conseille de suivre le conseil de SQLPro et de faire :
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Sauvegarde via HP Date Protector ne fonctionne plus
    Par HeadQuaker dans le forum Recovery Manager
    Réponses: 0
    Dernier message: 26/02/2013, 17h47
  2. Réponses: 1
    Dernier message: 24/08/2012, 11h54
  3. Fonction date() Nz( ne fonctionnement plus
    Par davikakafefe dans le forum IHM
    Réponses: 5
    Dernier message: 05/08/2010, 16h32
  4. Fonction Date et Time ne fonctionne plus
    Par Salsaboy60 dans le forum IHM
    Réponses: 4
    Dernier message: 26/01/2009, 23h07
  5. même la fonction "Date" ne fonctionne plus
    Par cyber_cobra_net dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 21/10/2007, 13h44

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