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 :

selection d'un enregistrement de type timestamp avec une date


Sujet :

Requêtes MySQL

  1. #1
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut selection d'un enregistrement de type timestamp avec une date
    bonjour, j'essaie de faire une selection via une date, plus précisément d'une date formatée (2010/11/02).
    Cependant le champs contenant la date est un timestamp ce qui rend les choses plus difficiles.
    J'ai essayer cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT n.*,lang.alias_lang FROM dc_news AS n
    		LEFT JOIN dc_language AS lang USING(idlang)
    		WHERE n.idnews = "gSEMcv2JdYaVd0dKOIim" AND  n.date_register = "2011-02-03" AND published = 1
    Il me retourne null alors que j'ai bien un enregistrement.

    Ensuite j'ai essayer avec ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT n.*,lang.alias_lang FROM dc_news AS n
    		LEFT JOIN dc_language AS lang USING(idlang)
    		WHERE n.idnews = "gSEMcv2JdYaVd0dKOIim" AND DATE_FORMAT("2011-02-03", GET_FORMAT(n.date_register, "ISO")) AND published = 1
    Il me retourne null alors que j'ai bien un enregistrement.
    Comment sélectionner convenablement des date timestamp avec une date formatée.

  2. #2
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Je ne sais pas si c'est dû à ça mais en SQL, les valeurs textuelles s'écrivent entre apostrophes, pas entre guillemets.

    Tu peux utiliser CAST pour être sûr de convertir en date ton expression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND  CAST(n.date_register AS DATE) = CAST('2011-02-03' AS DATE)

  3. #3
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Super c'est exactement sa, je ne connaissais pas CAST
    Je vais essayer de me documenté un peux mieux sur les fonctions de date et mathématique avec mysql
    Pour ce qui est de double quote c'est une erreur de copier coller
    PS: Dans quel cas je peux utiliser ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATE_FORMAT("2011-02-03", GET_FORMAT(n.date_register, "ISO"))
    Histoire de bien comprendre son utilisation
    Grand merci

  4. #4
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Je vais essayer de me documenté un peux mieux sur les fonctions de date et mathématique avec mysql
    Fonctions de date et heure de MySQL.

    Pour ce qui est de double quote c'est une erreur de copier coller
    Sauf que tu as recommencé dans le morceau de requête que tu donnes dans ton dernier message !

    PS: Dans quel cas je peux utiliser ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATE_FORMAT("2011-02-03", GET_FORMAT(n.date_register, "ISO"))
    Je ne sais pas, je n'utilise DATE_FORMAT que pour transformer une date au format standard SQL 'aaaa-mm-jj' en format français 'jj/mm/aaaa' ou l'inverse. Mais en BDD, il faut stocker les dates en format standard.

  5. #5
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Bonsoir ,
    C'est juste une question sur ce bout de script qui provient du site de mysql
    Voici l'extrait :
    Le format ISO est le format ISO 9075, et non ISO 8601.

    mysql> SELECT DATE_FORMAT('2003-10-03', GET_FORMAT(DATE, 'EUR')
    -> '03.10.2003'
    mysql> SELECT STR_TO_DATE('10.31.2003', GET_FORMAT(DATE, 'USA'))
    -> 2003-10-31

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

Discussions similaires

  1. Lire un champ de type timestamp avec OCI
    Par fagotto dans le forum Interfaces de programmation
    Réponses: 3
    Dernier message: 02/12/2014, 18h34
  2. Réponses: 2
    Dernier message: 23/04/2008, 13h28
  3. Réponses: 3
    Dernier message: 23/10/2006, 00h15
  4. Réponses: 4
    Dernier message: 02/08/2006, 09h42
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 16h17

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