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

MS SQL Server Discussion :

Découper les dates en période


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2008
    Messages : 38
    Points : 43
    Points
    43
    Par défaut Découper les dates en période
    Bonjour à tous, j'ai effectué une recherche sur le forum mais n'ai rien trouvé pour répondre à ma questionnement.

    Comme je suis un peu pressé dans le temps pour trouver cette information je m'adresse à vous tous. J'aimerais ajouter un découpage en période de 15min à une db qui contient une colonne DATE (format datetime).

    J'ai essayé différents moyens mais je n'arrive pas à ce que je veux. L'objectif est de regouper les transactions par type par période de 15 min par jour en référençant une nouvelle colonne (15min)

    Exemple de table désiré:

    TRX_ID (INT) | EVT_NMTRX (VRCHAR) | CLIENT_MAIL (VARCHAR)| DATE ( DATETIME) | Qt | 15min (HH:MM:SS)
    0001234567 | Achat - Catalogue web | roger_rabbit2@lapin.com | 08-08-18 10:36:15 | 21 | 10:30:00
    0001234568 | Achat - Magasin E-bay | fardoche_1@fermier.com | 08-08-18 10:47:19 | 36 | 10:45:00

    J'ai découpé mes date en format Date à l'aide d'un CAST que j'insère dans une colonne Jour. Mais je bloque au découpage en période de 15min.

    J'aimerais avoir une colonne comme l'exemple 15min, qui me permettrait de faire mes regroupement au 15 min.

    Est-ce que quelqu'un peut m'éclairer svp?

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    La réponse dépend de la version de SQL Server que vous utilisez : si vous êtes sous SQL Server 2008, on peut utiliser le type de données time.
    Si vous êtes sous une version antécédente, il faut faire autre chose.

    Quel est le but de la manœuvre ?

    @++

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2008
    Messages : 38
    Points : 43
    Points
    43
    Par défaut
    SQL Server 2008.

    Le but étant de regrouper mes pics de transactions dans une plage de 15min.

    C'est à dire prendre toute les transactions entres 10:30 et 10:45; 10:45 et 11:00, etc. et ce sur une période de 24. Je veux ce découpage pour permettre la génération d'un rapport qui sera extrait par un getionnaire qui ne veut avoir rien d'autre à faire qu'ouvrir un fichier Excel. Je connecterais donc un classeur à cette table et il pourra manipuler le TcD comme il le veut en voyant les pics de transaction par période de 15min par jour.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2008
    Messages : 38
    Points : 43
    Points
    43
    Par défaut Réglé
    J'ai réglé mon problème en trois temps. Premièrement, j'ai convaincu le gestionnaire de découper en 10 minutes au lieu de 15 .

    Ensuite j'ai créer une colonne dans laquelle j'inscris la conversion de ma colonne Date au format TIME

    LEFT(CONVERT(TIME,DATE,0),5) AS [Heure]

    Une fois cette opération fait j'obtiens l'heure. Enfin je créer une petite vue qui ajoute une autre colonne qui découpe au 10 minutes.

    LEFT(CONVERT(TIME, a.Heure), 4) + '0' AS [PERIODE]

    En retirant la dernière minute pour la remplacer par 0 je règle la question. Pour obtenir les pics j'exécute un classeur Excel qui comporte une requête qui fait un SELECT DISCTINCT EVT_NMTRX, CLIENT_MAIL, DATE, PERIODE, COUNT(PERIODE) AS PEAK

    J'ai donc tout ce qui me faut pour interpréter les pics de transactions et en lui ajoutant des beaux segments dans le classeur il peut découper le tout par type de transactions.

    Ma seule peur maintenant c'est qu'au fil du temps la bd va grossir et la vue va être longue à traiter

    On verra rendu là à moins que quelqu'un aie une solution plus effiace. En ce moment pour traiter 3millions de lignes j'ai un temps réponse de 15sec.

    Bonne journée
    Merci.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/06/2009, 14h50
  2. Help!! Probleme avec les dates sur SQL SERVER
    Par Nadaa dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 03/08/2006, 16h55
  3. Retourner toutes les dates d'une période
    Par Gwipi dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/03/2006, 23h44
  4. [Interbase] [Access] les dates
    Par AnestheziE dans le forum InterBase
    Réponses: 17
    Dernier message: 26/11/2003, 14h40
  5. opérations sur les dates
    Par coucoucmoi dans le forum Débuter
    Réponses: 2
    Dernier message: 12/08/2003, 11h45

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