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 :

Modifier des secondes [2008]


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 : 62
    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 Modifier des secondes
    Num_Inter Engin Num_Depart Fonction Centre Nbre_Agent Validation DH_Depart Date_1
    00111 VSRL 1 1 VSRL MIRAMONT DE GUYENNE 1 Incohérence 02/01/2014 12:25:01 janv 2 2014 12:25
    00111 VSRL 1 1 VSRL MIRAMONT DE GUYENNE 2 Valide 02/01/2014 12:25:00 janv 2 2014 12:25
    Ma requête :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    SELECT  DISTINCT  RIGHT(EE.ID_INTERVENTION,5) Num_Inter,
                      EE.ID_TYPE_ENGIN+' '+CONVERT(VARCHAR,EE.NUMERO_MATERIEL,1) Engin,
                      EE.NUM_ORDRE Num_Depart,
                      EE.FONCTION Fonction,
                      C.LIB_CENTRE Centre,
                      COUNT(AE.ID_AGENT) Nbre_Agent,
                      CASE WHEN EE.ID_TYPE_ENGIN = EE.FONCTION AND COUNT(AE.ID_AGENT) IN ('2','3') THEN 'Valide' ELSE 'Incohérence' END Validation,
                      AE.DH_DEPART DH_Depart,                  
                      LEFT(AE.DH_DEPART,18) Date_1,
                      DATEPART(DAY,AE.DH_DEPART) Jour,
                      DATEPART(HOUR,AE.DH_DEPART)Heure,
                      YEAR(AE.DH_DEPART) Annee
     
    FROM OPS_AGENT_ENGAGE AE
     
    INNER JOIN OPS_ENGIN_ENGAGE EE ON AE.CLE_ENGIN_ENG = EE.CLE
    INNER JOIN OPS_CENTRE C ON AE.ID_CENTRE = C.ID_CENTRE
     
    WHERE   AE.NUM_RENFORT < '99'
    AND     AE.ID_FONCTION NOT LIKE 'NR'
    AND     AE.ID_FONCTION NOT IN ( 'INFIRMIER SP','CHEF DE GROUPE','CHEF DE COLONNE','CHEF DE SITE','REFERENT PGR','CDC CODIS','CHEF CMIC','CHEF CMIR','CDC FDF','CDG FDF',
                                    'CEQ GRIMP','CH DE SALLE CTA','CT BIO','CT CYNO','CT COMMUNAL FDF','CT FEU TACTIQUE','CT GRIMP','CT NRBC','CT PLONGEE','CT PREV','CT RAD',
                                    'CT RCH','CT SD','CT TRANS','CU CYNO','CU GRIMP','CU NRBC','CU SD','EQ FEU TACTIQUE','EQ GRIMP','FLECHEUR ANIMAL','INFIRMIER PSY',
                                    'INFIRMIER C 15','MEDECIN SP','MEDECIN PSY','MEDECIN C 15','OP CTA','PHARMACIEN','PLONGEUR','SEV','SOUSAN','VETERINAIRE','REF PHOTOVOLT',
                                    'RCCI','RCCI 1','FLECHEUR 1','SAV')
    AND     AE.DH_DEPART BETWEEN AE.DH_DEPART AND DATEADD(MI, 1, AE.DH_DEPART)
    AND     EE.ID_TYPE_ENGIN = EE.FONCTION
    AND     EE.ID_TYPE_ENGIN IN ('VSRM','VSRL')
    AND     YEAR(AE.DH_ALERTE) = 2014
     
    GROUP BY  RIGHT(EE.ID_INTERVENTION,5),
              EE.ID_TYPE_ENGIN+' '+CONVERT(VARCHAR,EE.NUMERO_MATERIEL,1),
              EE.NUMERO_MATERIEL,
              EE.FONCTION,
              EE.NUM_ORDRE,
              C.LIB_CENTRE,
              AE.DH_DEPART,
              EE.ID_TYPE_ENGIN
     
     
    UNION
     
    SELECT  DISTINCT  RIGHT(EE.ID_INTERVENTION,5) Num_Inter,
                      EE.ID_TYPE_ENGIN+' '+CONVERT(VARCHAR,EE.NUMERO_MATERIEL,1) Engin,
                      EE.NUM_ORDRE Num_Depart,
                      EE.FONCTION Fonction,
                      C.LIB_CENTRE Centre,
                      COUNT(AE.ID_AGENT) Nbre_Agent,
                      CASE WHEN EE.ID_TYPE_ENGIN != EE.FONCTION AND COUNT(AE.ID_AGENT) IN ('3','4') THEN 'Valide' ELSE 'Incohérence' END Validation,
                      AE.DH_DEPART DH_Depart,                  
                      LEFT(AE.DH_DEPART,18) Date_1,
                      DATEPART(DAY,AE.DH_DEPART) Jour,
                      DATEPART(HOUR,AE.DH_DEPART)Heure,
                      YEAR(AE.DH_DEPART) Annee
     
    FROM OPS_AGENT_ENGAGE AE
     
    INNER JOIN OPS_ENGIN_ENGAGE EE ON AE.CLE_ENGIN_ENG = EE.CLE
    INNER JOIN OPS_CENTRE C ON AE.ID_CENTRE = C.ID_CENTRE
     
    WHERE   AE.NUM_RENFORT < '99'
    AND     AE.ID_FONCTION NOT LIKE 'NR'
    AND     AE.ID_FONCTION NOT IN ( 'INFIRMIER SP','CHEF DE GROUPE','CHEF DE COLONNE','CHEF DE SITE','REFERENT PGR','CDC CODIS','CHEF CMIC','CHEF CMIR','CDC FDF','CDG FDF',
                                    'CEQ GRIMP','CH DE SALLE CTA','CT BIO','CT CYNO','CT COMMUNAL FDF','CT FEU TACTIQUE','CT GRIMP','CT NRBC','CT PLONGEE','CT PREV','CT RAD',
                                    'CT RCH','CT SD','CT TRANS','CU CYNO','CU GRIMP','CU NRBC','CU SD','EQ FEU TACTIQUE','EQ GRIMP','FLECHEUR ANIMAL','INFIRMIER PSY',
                                    'INFIRMIER C 15','MEDECIN SP','MEDECIN PSY','MEDECIN C 15','OP CTA','PHARMACIEN','PLONGEUR','SEV','SOUSAN','VETERINAIRE','REF PHOTOVOLT',
                                    'RCCI','RCCI 1','FLECHEUR 1','SAV')
    AND     AE.DH_DEPART BETWEEN AE.DH_DEPART AND DATEADD(MI, 1, AE.DH_DEPART)
    AND     EE.FONCTION = 'FPTSR'
    AND     EE.ID_TYPE_ENGIN = 'FPT'
    AND     YEAR(AE.DH_ALERTE) = 2014
     
    GROUP BY  RIGHT(EE.ID_INTERVENTION,5),
              EE.ID_TYPE_ENGIN+' '+CONVERT(VARCHAR,EE.NUMERO_MATERIEL,1),
              EE.NUMERO_MATERIEL,
              EE.FONCTION,
              EE.NUM_ORDRE,
              C.LIB_CENTRE,
              AE.DH_DEPART,
              EE.ID_TYPE_ENGIN
    Existe t'il un moyen de supprimer les secondes, hormis de passer par un "LEFT", où on le voit bien, ne fait que les masquer mais ne les ignore pas pour mon compte d'agents? J'ai un delta de 1 seconde qui m'empêche de faire ce compte.
    Ou alors existerait-il un moyen de faire un "REPLACE" sur les secondes afin d'arriver à un format de date : JJ/MM/AA HH:mm:00

    Afin d'eviter toutes confusions, j'ai édité ma requête avec uniquement "LEFT(AE.DH_DEPART,18)", j'ai toujours 2 lignes qui apparaissent.

    Cordialement.Taz

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    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 999
    Billets dans le blog
    6
    Par défaut
    Vous appliquez une fonction qui prend en compte le type STRING à un type temporal.

    À votre avis, ajouter des carottes à cours de l'aluminium coté sur la place de Zurich, ça donne quoi ?

    Pour manipuler des données temporelles il faut exclusivement utiliser des fonctions temporelles !

    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/ * * * * *

  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 : 62
    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
    Moi aussi, je pensais cela impossible , d'où une idée tordue:

    lorsque l'on fait RIGHT(AE.DH_DEPART,2), je me suis aperçu que mon format de date faisait apparaitre non pas des secondes mais soit 'AM' soit 'PM'. Donc je me suis fait cette concaténation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LEFT(AE.DH_DEPART,17)+''+REPLACE(REPLACE(right(AE.DH_DEPART,2),'PM',':00'),'AM',':00')
    le résultat est le suivant :
    Num_Inter Engin Num_Depart Fonction Centre Nbre_Agent Validation Date
    00111 VSAV 2 1 VSAV MIRAMONT DE GUYENNE 3 Valide janv 2 2014 12:22:00
    Comme quoi, on peut bien ajouter des carottes au cours de l'aluminium coté sur la place de Zurich.
    j'ai fait des sondages sur différents Num_Inter, le résultat est juste.

    Bizarre!!!

    Cordialement

    Taz

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    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 999
    Billets dans le blog
    6
    Par défaut
    Jusqu'au jour ou cela ne marchera plus et comme vous ne saurez pas pourquoi, il va falloir faire appel à un consultant en urgence pour régler le problème.

    En tout état de cause, ajouter des carottes au cours de l'aluminium coté sur la place de Zurich peut parfois marcher, mais ne donnera pas les mêmes résultat si vous êtes en suisse (cotation en franc suisse) en Espagne (cotation en euros) ou aux USA (dollar).

    Bref, si vos utilisateurs sont connecté en anglais et pas dans la, langue de votre session, bonjour les dégâts potentiels !

    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/ * * * * *

  5. #5
    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 : 62
    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
    Et bientôt, je planterai des choux à la mode de chez nous.

    Merci pour l'info.

    Cordialement

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/08/2005, 09h42
  2. comment convertir des secondes en hh:mm:ss en xsl
    Par Jayceblaster dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 22/07/2005, 10h24
  3. [Fonction Oracle] Convertir des secondes en heure
    Par falcon dans le forum Oracle
    Réponses: 12
    Dernier message: 18/11/2004, 11h56
  4. [Fonction SQL Server] Convertir des secondes en heure
    Par falcon dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 17/11/2004, 17h22
  5. [CR9]Modifier des états créés en V9 par la V8.5
    Par Milou79 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 03/09/2004, 11h37

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