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 :

SQL Date selection


Sujet :

Requêtes MySQL

  1. #1
    Membre éclairé
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Points : 828
    Points
    828
    Par défaut SQL Date selection
    Bonsoir,

    j'aimerai savoir s'il y'a une possiblité d'afficher les valeurs d'une table donnée entre l'instant actuel et l'instant actuel - 24h .

    Exemple :

    On est a 29/11/2011 à 22h33 min....Je veux afficher toutes les valeurs de ma tables qui existent entre 28/11/2011 à 22h33 min et 29/11/2011 à 22h33 min


    Merci

  2. #2
    Membre éclairé
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Points : 828
    Points
    828
    Par défaut
    j'ai essayé ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from table where Data_co between now() and DATE_SUB(now(), 1DAY)

    pour afficher les résultats des derniers 24h mais ca ne marche pas..

    une idée?

  3. #3
    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
    1) Il manque un espace entre 1 et DAY et le mot INTERVAL.

    2) Bien entendu, Data_co est une colonne de la table ? Elle est bien de type DATE ?

    3) Avec BETWEEN, il faut que la première valeur soit inférieure à la seconde.

    4) CURRENT_DATE est plus standard que now().

    5) Au passage, évite la guerre des étoiles !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT -- les colonnes nécessaires et pas étoile 
    FROM la_table 
    WHERE Data_co BETWEEN DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY) AND CURRENT_DATE
    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 !

  4. #4
    Membre éclairé
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Points : 828
    Points
    828
    Par défaut
    Bonsoir,

    merci beaucoup pour votre réponse.

    J'ai essayé cette requete, elle fonctionne, mais elle m'affiche les résultats d'aujourd'hui et d'hier( tout la journée d'hier)... Alors que moi je veux afficher les résultats des derniers 24h seulement...

    Exemple : Heure actuelle 22h30

    l'intervalle d'affichage est [29/11/2011 22:30 , 30/11/2011 22:30]

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    beh cest quoi le type de votre colonne ? une date ou un timestamp ?

  6. #6
    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
    Remplace CURRENT_DATE par CURRENT_TIMESTAMP et utilise plutôt INTERVAL 24 HOUR.
    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 !

  7. #7
    Membre éclairé
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Points : 828
    Points
    828
    Par défaut
    j'ai essayé avec cette requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select heure, date, valeur from table1 where date between(current_timestamp, interval 24 hour) and current_timestamp;
    mais ca ne m'affiche que les valeurs d'aujourd'hui
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    +----------+------------+---------+
    | heure      | date             | valeur |
    +----------+------------+---------+
    | 00:01:05 | 2011-12-05 | 580.078 |
    | 00:50:35 | 2011-12-05 | 672.592 |
    | 01:27:40 | 2011-12-05 | 521.921 |
    | 02:12:16 | 2011-12-05 | 773.705 |
    | 02:35:18 | 2011-12-05 | 749.223 |
    | 02:52:46 | 2011-12-05 |  3418.7 |
    | 03:16:01 | 2011-12-05 | 3396.74 |
    | 03:48:35 | 2011-12-05 | 3437.36 |
    | 04:09:17 | 2011-12-05 | 1366.89 |
    | 04:29:26 | 2011-12-05 | 773.603 |
    | 05:09:44 | 2011-12-05 | 792.687 |
    | 05:26:48 | 2011-12-05 | 3449.71 |
    | 05:45:16 | 2011-12-05 | 800.735 |
    | 06:22:21 | 2011-12-05 | 830.719 |
    | 06:55:13 | 2011-12-05 | 719.196 |
    | 07:22:32 | 2011-12-05 | 3350.17 |
    | 08:01:37 | 2011-12-05 | 687.722 |
    | 08:31:40 | 2011-12-05 | 2478.25 |
    | 08:51:59 | 2011-12-05 | 3320.14 |
    | 09:38:16 | 2011-12-05 |  3196.8 |
    | 10:15:52 | 2011-12-05 |  1843.8 |
    | 10:39:26 | 2011-12-05 | 3207.39 |
    | 10:57:46 | 2011-12-05 | 2768.09 |
    | 11:17:44 | 2011-12-05 | 2444.33 |
    | 11:38:52 | 2011-12-05 |    2905 |
    | 11:59:46 | 2011-12-05 | 1965.51 |
    | 12:18:18 | 2011-12-05 | 3003.33 |
    | 14:47:46 | 2011-12-05 | 1860.09 |
    | 15:19:28 | 2011-12-05 | 3152.83 |
    | 15:37:11 | 2011-12-05 | 3113.16 |
    | 15:55:10 | 2011-12-05 | 3364.64 |
    | 17:14:07 | 2011-12-05 | 98.7013 |
    +----------+------------+---------+
    Voici ma table :

    show create table httptable;
    +-----------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
    | Table | Create Table |
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    +-----------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
    | table1 | CREATE TABLE `table1` (
      `date` date DEFAULT NULL,
      `heure` time DEFAULT NULL,
      `valeur` float DEFAULT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
    +-----------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)

  8. #8
    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
    Vite fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT heure, `date`, valeur 
    FROM table1 
    WHERE `date` BETWEEN DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 24 HOUR) AND CURRENT_TIMESTAMP
    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 !

  9. #9
    Membre éclairé
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Points : 828
    Points
    828
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Vite fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT heure, `date`, valeur 
    FROM table1 
    WHERE `date` BETWEEN DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 24 HOUR) AND CURRENT_TIMESTAMP
    bein c'est la meme requete que j'ai testé...et ca ne fonctionne pas non plus ><

  10. #10
    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
    Comme c'était vite fait, je n'avais pas vu, et tu ne nous avais pas dit, que tu avais une colonne pour la date et une pour l'heure !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT heure, `date`, valeur 
    FROM table1 
    WHERE STR_TO_DATE(CONCAT(`date`, ' ', heure), '%Y-%m-%d %H:%i:%s') BETWEEN DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 24 HOUR) AND CURRENT_TIMESTAMP
    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 !

  11. #11
    Membre éclairé
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Points : 828
    Points
    828
    Par défaut
    la ca marche à merveille

    Merci bqbq

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

Discussions similaires

  1. conversion format date (sql clause select)
    Par rezonet dans le forum iReport
    Réponses: 1
    Dernier message: 09/04/2012, 10h08
  2. Erreur SQl pour select count avec critere date
    Par fdalyon dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 10/05/2010, 19h50
  3. Requetes sql sur DATE (selection d'une période)
    Par Ma2x. dans le forum Requêtes
    Réponses: 3
    Dernier message: 06/01/2010, 18h25
  4. [Date][SQL date][Format] insertion d'une heure
    Par goulime dans le forum JDBC
    Réponses: 11
    Dernier message: 26/01/2004, 11h38
  5. SQL Date
    Par hamed dans le forum Langage SQL
    Réponses: 5
    Dernier message: 19/11/2003, 15h18

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