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 SQL Discussion :

Distinct sur un DateTime


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 27
    Par défaut Distinct sur un DateTime
    Bonjour bonjour,

    J'aurais voulu avoir une confirmation...

    En MySql

    J'ai une table avec un champ DateTime -0000-00-00 00:00:00- , je tente de ne sortir que les jours différents, je dois donc utiliser la Clause distinct ? (déjà, est ce que j'ai bon là?)
    Alors ça me donne quelque chose dans le genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT hdebut AS joursdif FROM stats WHERE id_client='{$id_user}'
    Mais ça me renvois tout et je crois savoir pourquoi (puisqu'il analyse l'intégralité et pas seulement le jour) mais je ne sais pas comment l'empêcher.

    Merci beaucoup.

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mars 2006
    Messages : 400
    Par défaut
    Pour n'obtenir que les jours, tu peux te baser sur la fonction TO_DAYS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT TO_DAYS(hdebut) AS joursdif
    FROM stats
    WHERE id_client='{$id_user}'

  3. #3
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 27
    Par défaut
    Merci pour ta réponse c'est effectivement une solution mais je dois ensutie retransfomer pour avoir un format lisible.
    Entre temps j'ai fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DISTINCT CONCAT(YEAR(hdebut),'-',MONTH(hdebut),'-',DAYOFMONTH(hdebut))AS joursDif FROM stats WHERE id_client='{$id_user}'
    , ce qui dans le genre est assez verbeux aussi... Si quelqu'un pouvait valider l'optimisation de la chose, j'aime bien savoir si mes méthodes sont propres.
    Merci beaucoup.

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mars 2006
    Messages : 400
    Par défaut
    Oui, CONCAT une méthode juste, bien qu'un peu longue.


    Pour avoir une date qui soit bien formatée, on peut utiliser la fonction DATE_FORMAT.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT DATE_FORMAT(hdebut,'%Y-%m-%d') AS joursdif
    FROM stats
    WHERE id_client='{$id_user}'
    '%Y-%m-%d' permet d'avoir la date au format YYYY-MM-DD.

Discussions similaires

  1. DISTINCT sur un seul attribut
    Par golgauth dans le forum Requêtes
    Réponses: 2
    Dernier message: 24/03/2006, 19h16
  2. Distinct sur colonne unique
    Par Dnx dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/11/2005, 10h10
  3. Select distinct sur varchar
    Par SILO dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 02/10/2005, 00h17
  4. Distinct sur un seul champ...
    Par Noodles dans le forum Langage SQL
    Réponses: 16
    Dernier message: 04/01/2005, 09h36
  5. [Débutant] DISTINCT sur une seule des colonnes ?
    Par Neilos dans le forum Langage SQL
    Réponses: 9
    Dernier message: 23/06/2004, 23h04

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