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 :

Timestamp en local


Sujet :

Langage SQL

  1. #1
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut Timestamp en local
    Bonjour,

    Je ne savais pas trop si je devais poster ici ou dans PhpMyAdmin...

    Voilà, lorsque j'effectue une requête plutôt banal(il n'y a pas toute la requête):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT nom, retour, DATE_FORMAT(FROM_UNIXTIME(ctime), '%d/%m/%Y %H:%i:%s') AS date_heure , min(ctime) 
    FROM infos
    WHERE nom LIKE 'JEAN%' 
    AND retour LIKE '%30/01/2015%' 
    GROUP BY nom
    Il y a trois lignes possibles pour cette date:
    -30/01/2015 10:18:23
    -30/01/2015 12:30:41
    -30/01/2015 20:01:10

    Elle est censée me renvoyer dans la colonne date_heure le 30/01/2015 10:18:23.
    Mais elle me renvoie 30/01/2015 12:30:41...

    Alors que quand j'effectue la requête identique sur un serveur, la requête me renvoie la bonne réponse...

    Donc je pense que le MIN/MAX ne fonctionne pas sur le champs ctime(qui est un timestamp).

    Une aide serait la bienvenue

    Merci!
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  2. #2
    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
    L'effet de bord que vous découvrez est dû au fait que votre requête n'est normativement pas bonne, même si elle est acceptée, malheureusement, par MerdeSQL.

    Toutes les colonnes du SELECT ne faisant pas l'objet d'une fonction de groupage doivent figurer dans le GROUP BY sous peine de voir des valeurs aléatoires pour les colonnes manquantes.

    Votre requête devrait donc être la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT nom, retour, DATE_FORMAT(FROM_UNIXTIME(ctime), '%d/%m/%Y %H:%i:%s') AS date_heure , min(ctime) 
    FROM infos
    WHERE nom LIKE 'JEAN%' 
    AND retour LIKE '%30/01/2015%' 
    GROUP BY nom, retour, DATE_FORMAT(FROM_UNIXTIME(ctime), '%d/%m/%Y %H:%i:%s')
    Mais bien sûr, dans ce cas là, vous aurez une ligne pour chaque ctime, ce qui n'est pas le but recherché.

    Donc il vous faut la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT nom, retour, min(DATE_FORMAT(FROM_UNIXTIME(ctime), '%d/%m/%Y %H:%i:%s') AS ctime_mini
    FROM infos
    WHERE nom LIKE 'JEAN%' 
    AND retour LIKE '%30/01/2015%' 
    GROUP BY nom, retour
    Voir aussi les tutoriels et cours de formation pour apprendre SQL.
    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 !

  3. #3
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Merci! C'était ça!
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

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

Discussions similaires

  1. timestamp selon heure locale
    Par krunch dans le forum Langage
    Réponses: 4
    Dernier message: 31/03/2014, 12h27
  2. Comment récupérer le timestamp local
    Par Regis0122 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/06/2009, 21h14
  3. Redimensionnement des Paquets IP sur un Réseau Local
    Par Bonoboo dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 15h40
  4. variables locales ou globales ???
    Par elvivo dans le forum C
    Réponses: 13
    Dernier message: 03/07/2002, 08h22
  5. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 16h20

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