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

Développement SQL Server Discussion :

Regroupement sur les heures


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Homme Profil pro
    Etudiant en alternance
    Inscrit en
    Octobre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Etudiant en alternance
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 17
    Points : 18
    Points
    18
    Par défaut Regroupement sur les heures
    Bonjour, je travail sur une base de données qui enregistre une donnée numérique toutes les 5 minutes je souhaite récupérer cette donnée tous les jours (sur un mois) à 14h00 et 16h00.
    J'ai donc une table avec un int et un datetime.

    Je n'arrive pas travailler sur la partie hh:mm:ss du datetime, pas de problème pour trouver une valeur à un date précise(jj/mm/aa hh:mm:ss) mais pour récupérer toutes les valeurs à ces heures-là(14h00 et 16h00) ...

  2. #2
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    En utilisant la fonction DatePart() pour récupérer l'heure = x, la minute = 0, ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datepart(hh,MonChampDate) = 14 and datepart(...)

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 565
    Points
    52 565
    Billets dans le blog
    5
    Par défaut
    Le plus simple est d'implémenter une table de chronodatation au poas voulu.

    Si vous avez déjà une table de chronodatation au pas de 5 minutes, par exemple comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    NID      DATE       HEURE
    ------- ---------- --------
    ...
    294     1/1/1900   00:00
    295     1/1/1900   00:05  
    296     1/1/1900   00:10
    297     1/1/1900   00:15
    ...
    135454  11/10/2011 17:20
    135455  11/10/2011 17:25
    135456  11/10/2011 17:30
    ...
    Il vous suffit de faire une jointure avec un filtre comme ceci :

    NID modulo 12 = ?

    pour récupérer une ligne par heure, ou bien:

    (NID + ?) / 12

    Pour faire une agrégat sur toutes les lignes d'une même heure.

    Ou ? est 0, 1, 2, 3 ... 11 en fonction du calage entre la dateheure et le ID
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Ou éventuellement avec la fonction convert et le style 114 ?
    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select convert(varchar(5),getdate(),114)
    va renvoyer l'heure en cours sous forme de chaine 'HH:mm'

  5. #5
    Membre à l'essai
    Homme Profil pro
    Etudiant en alternance
    Inscrit en
    Octobre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Etudiant en alternance
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Merci pour vos réponses j'ai pu réaliser ma requête

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/03/2017, 18h45
  2. MIcrosoft Server 2005 questions sur les heures
    Par blaise4714 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 19/03/2009, 15h35
  3. Regroupement sur les conditions if
    Par g_barthe dans le forum Eclipse PHP
    Réponses: 1
    Dernier message: 11/03/2008, 08h12
  4. Calcul sur les heures jour/nuit
    Par scrat57000 dans le forum VBA Access
    Réponses: 7
    Dernier message: 06/05/2007, 14h53
  5. Calcul sur les heures
    Par franfr57 dans le forum Langage
    Réponses: 5
    Dernier message: 20/04/2006, 17h56

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