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

Langage PHP Discussion :

Travailler sur un type date MySQL


Sujet :

Langage PHP

  1. #1
    Débutant
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Points : 704
    Points
    704
    Par défaut Travailler sur un type date MySQL
    Bonjour.

    Je récupère un format date sur MySQL (de type AAAA-MM-JJ HH:MM:SS).
    Je voudrais récupérer certaines informations mais pas d'autres...
    Y-t-il une fonction pour exécuter ceci?

    Par exemple : avec JJ-MM-AAAA HH:MM

    Merci

  2. #2
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    Tu peux utiliser la fonction substr()

  3. #3
    Membre régulier Avatar de Grepsd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 96
    Points : 119
    Points
    119
    Par défaut
    Tout peut être fait dans la requête MySQL:
    SELECT DATE('dd/mm/yyyy hh:ii:ss', date_field) FROM table WHERE where_clauses

    Je ne suis pas sûr de la syntaxe de la fonction DATE de MySQL, du coup, je te conseil d'aller voir sur le site ^^

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Presque : la fonction MySQL s'appelle DATE_FORMAT et non date tout court comme en PHP

    Il y en a un exemple dans la FAQ et vous trouverez sa documentation détaillée (par rapport aux différentes options de formatage) dans la doc officielle.

    C'est bien plus simple que de le faire en PHP (preg_replace, scanf, etc).

  5. #5
    Débutant
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Points : 704
    Points
    704
    Par défaut
    Citation Envoyé par julp Voir le message
    Presque : la fonction MySQL s'appelle DATE_FORMAT et non date tout court comme en PHP

    Il y en a un exemple dans la FAQ et vous trouverez sa documentation détaillée (par rapport aux différentes options de formatage) dans la doc officielle.

    C'est bien plus simple que de le faire en PHP (preg_replace, scanf, etc).

    Mais avec la requête que j'ai actuellement et avec l'adaptation de date_format, ça ne fonctionne pas.

    Voici l'original :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT id_trans, nom_transmetteur.numero , nom_transmetteur.id , nom_transmetteur.information, nom_transmetteur.groupe, nom_transmetteur.heure, max(date) AS date_max
    FROM envoi, nom_transmetteur
    WHERE nom_transmetteur.id = envoi.id_trans
    GROUP BY (id_trans)
    ORDER BY (date_max) DESC


    Et avec la fonction date_format :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT id_trans, nom_transmetteur.numero , nom_transmetteur.id , nom_transmetteur.information, nom_transmetteur.groupe, nom_transmetteur.heure, DATE_FORMAT(max(date),%d/%m/%Y %H:%i:%s) AS date_max
    FROM envoi, nom_transmetteur
    WHERE nom_transmetteur.id = envoi.id_trans
    GROUP BY (id_trans)
    ORDER BY (date_max) DESC
    date_max me renvoi null...

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Hum, le deuxième paramètre de date_format est une chaîne donc il manque visiblement, et pour commencer, des quotes à ce niveau.

  7. #7
    Débutant
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Points : 704
    Points
    704
    Par défaut
    Exact. Mais ça ne me trie pas les dates correctement.
    Il trie uniquement sur les jours.

    Je vais essayer alors la méthode avec substr()...

  8. #8
    Membre régulier Avatar de Grepsd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 96
    Points : 119
    Points
    119
    Par défaut
    Utilise ORDER BY DATE_FORMAT(date, format), DATE_FORMAT(date, format)...

  9. #9
    Débutant
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Points : 704
    Points
    704
    Par défaut
    Citation Envoyé par Jumano Voir le message
    Bonjour,
    Tu peux utiliser la fonction substr()
    C'est le mieux en faite.
    Pas terrible à mettre en place mais c'est le plus personnalisable (pour ma part)

    Merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/09/2010, 15h11
  2. [Oracle 9i] contrainte CHECK sur le type date
    Par zchallal dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/06/2006, 11h34
  3. [ODBC/MYSQL/ACCESS] Comment preserver Type Date ?
    Par Antichoc dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 11/01/2006, 19h11
  4. Critères sur champ de type date
    Par blasco dans le forum Access
    Réponses: 2
    Dernier message: 29/10/2004, 09h48
  5. Travailler sur une date
    Par HqX dans le forum Langage SQL
    Réponses: 11
    Dernier message: 05/10/2004, 15h54

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