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 :

Eclater des heures


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Je produit des statistiques pour le SDIS 47.
    Inscrit en
    Avril 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Je produit des statistiques pour le SDIS 47.
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2014
    Messages : 73
    Par défaut Eclater des heures
    - Eclater des heures

    J'ai une date de début 01/01/2015 00:00:00, une heure de fin 01/01/2015 23:59:59.
    Est-il possible d'éclater cette tranche horaire par période de 30 minutes?

    Cordialement.

    Taz

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Hello,

    Quel est le besoin?

    ++

  3. #3
    Membre confirmé
    Homme Profil pro
    Je produit des statistiques pour le SDIS 47.
    Inscrit en
    Avril 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Je produit des statistiques pour le SDIS 47.
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2014
    Messages : 73
    Par défaut Eclater des heures.
    Je veux pouvoir comptabilser le nombre d'agents disponibles par tranche horaire de 1/2 heure.

    Taz

  4. #4
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    On pourrait avoir un exemple de ta table avec un jeu de données.

    Comment sont stockées tes agents dans ta base de données et la corrélation avec les intervalles de date que tu donnes

    J'ai une date de début 01/01/2015 00:00:00, une heure de fin 01/01/2015 23:59:59.
    Je veux pouvoir comptabilser le nombre d'agents disponibles par tranche horaire de 1/2 heure.
    ++

  5. #5
    Membre expérimenté
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Billets dans le blog
    4
    Par défaut
    Est-ce que ce code pourrait répondre à ton besoin?

    Code sql : 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
     
    DECLARE @DateEntree DateTime = '2001-01-01' --Date de début de génération
          , @DateFin    DateTime
     
     
    SET @DateFin = DATEADD( DD, 1, @DateEntree );
     
    select @DateFin, @DateEntree
     
    ;WITH DateCTE AS
    ( SELECT CAST(@DateEntree AS DateTime) AS DateValue
       UNION ALL
      SELECT DATEADD(MI,30,DateValue)
        FROM DateCTE
       WHERE DATEADD(MI,30,DateValue) < @DateFin
    )
     
    select *
      from DateCTE

    les données sont générées pour 1 journée à raison de 1ligne toutes les 30minutes.
    Il n'y a que le 23h59 qui n'est pas réellement faisable en l'état, (surtout que j'ai pas forcément cherché à optimiser) Après, tout peut se faire avec un poil de temps passé dessus


    Cordialement,
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  6. #6
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    C'est la raison pour laquelle je lui demandais de préciser un peu plus le contexte :-)

    En fonction de ce qui est à faire l'approche peut être différente .. générer dynamiquement des lignes horaires est envisageable pour un jeu de données relativement faible ...
    S'il doit générer ceci pour un nombre de lignes important (et j'en suis à peu près sûr ici) , ca sera une autre histoire :-)
    ++

  7. #7
    Membre expérimenté
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    C'est la raison pour laquelle je lui demandais de préciser un peu plus le contexte :-)

    En fonction de ce qui est à faire l'approche peut être différente .. générer dynamiquement des lignes horaires est envisageable pour un jeu de données relativement faible ...
    S'il doit générer ceci pour un nombre de lignes important (et j'en suis à peu près sûr ici) , ca sera une autre histoire :-)
    ++
    Oui, pour le côté perf, je suis totalement d'accords. Après, il n'est pas trop difficile de reprendre la CTE pour insérer dans une table une plus grand quantité de données.

    OU alors une table d'heures avec un petit produit cartésien sur une dimDate pourrait fonctionner aussi. Dans tous les cas, il faut un jeu de données pour au moins une journée
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  8. #8
    Membre confirmé
    Homme Profil pro
    Je produit des statistiques pour le SDIS 47.
    Inscrit en
    Avril 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Je produit des statistiques pour le SDIS 47.
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2014
    Messages : 73
    Par défaut Eclater des heures.
    Nom agent DH_DEBUT_SPEC DH_FIN_SPEC LIBELLE CODE_FCTOCCUPEE
    MOI STEPHANE 28/02/2015 05:00:00 28/02/2015 07:30:00 AST 1 PLONGEUR
    DUP CHRISTOPHE 28/02/2015 07:00:00 28/02/2015 20:00:00 GARDE SPV PLONGEUR
    LAN THOMAS 28/02/2015 07:00:00 28/02/2015 14:00:00 DISP SPEC V PLONGEUR
    MOI STEPHANE 28/02/2015 07:30:00 01/03/2015 07:30:00 GARDE SPP PLONGEUR
    LAN THOMAS 28/02/2015 17:30:00 01/03/2015 12:00:00 DISP SPEC V PLONGEUR
    GEN MATTHIEU 28/02/2015 19:00:00 01/03/2015 07:00:00 AST RO NU PLONGEUR
    BOU NICOLAS 01/03/2015 00:30:00 01/03/2015 07:30:00 DISP SPEC P PLONGEUR
    BOU NICOLAS 01/03/2015 07:30:00 02/03/2015 07:30:00 GARDE SPP PLONGEUR
    CHI JULIEN 01/03/2015 07:30:00 02/03/2015 07:30:00 GARDE SPP PLONGEUR
    GRE JOCELYN 01/03/2015 07:30:00 02/03/2015 07:30:00 GARDE SPP PLONGEUR
    LAC PIERRE 01/03/2015 07:30:00 02/03/2015 07:30:00 GARDE SPP PLONGEUR
    DUP CHRISTOPHE 01/03/2015 16:30:00 01/03/2015 19:30:00 Astreinte 1 PLONGEUR
    LAN THOMAS 01/03/2015 19:00:00 02/03/2015 07:00:00 Astreinte 1 PLONGEUR
    GEN MATTHIEU 01/03/2015 19:30:00 02/03/2015 07:00:00 AST RO NU PLONGEUR
    DU CHRISTOPHE 01/03/2015 20:00:00 02/03/2015 07:00:00 DISP SPEC V PLONGEUR

    Ceci est la requête que j'édite, beaucoup d'agents mais avec des heures de début et de fin différentes. Mon but est de dire combien j'avais d'agents le 01/01/2015 de 16 h, puis de 16 h à 16 h 30 ...etc .

    Cordialement.

Discussions similaires

  1. Afficher des heures locales
    Par mrpowerboy dans le forum Applets
    Réponses: 3
    Dernier message: 27/09/2005, 17h57
  2. Exécution de macro à des heures différentes.
    Par pepe2006 dans le forum Access
    Réponses: 5
    Dernier message: 14/09/2005, 11h44
  3. Conversion des heures en minutes
    Par lacrevette dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/02/2005, 17h50
  4. [CR] Additionner des heures
    Par sbis dans le forum Formules
    Réponses: 4
    Dernier message: 22/03/2004, 15h34
  5. [TIME] Gestion des heures
    Par Seb7 dans le forum Débuter
    Réponses: 2
    Dernier message: 10/07/2003, 16h28

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