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

QlikView Discussion :

Conversion heure légale en GMT+1


Sujet :

QlikView

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 58
    Points : 34
    Points
    34
    Par défaut Conversion heure légale en GMT+1
    Bonjour,

    Certains de mes capteurs enregistrent leurs données avec un serveur de temps que je ne peux modifier.
    Mes autres capteurs sont indépendants de l'heure légale et enregistrent en GMT+1.

    Le but est de convertir les données horaires de la première famille de capteurs en GMT+1 pour pouvoir tous les comparer.

    J'utilise la fonction converttolocaltime qui est prévue pour faire l'inverse: transformer du GMT en heure local avec un if car sinon je n'arrive pas à retrancher une heure en été d'été et rien en heure d'hivers:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =if(ConvertToLocalTime(DateNiv,'GMT-01:00',0)-DateNiv<>0,DateNiv,ConvertToLocalTime(DateNiv,'GMT-01:00',1))
    Cela fonctionne:
    Nom : Capture1.JPG
Affichages : 239
Taille : 103,1 Ko

    Les heures d'hivers restent en heure d'hivers et les heures d'été reculent d'une heure.

    Toutefois, la fonction converttolocaltime ne semble pas connaitre les heures de passage:
    * heure hivers-été à 3h00 et non 0h00
    * heure été-hivers à 2h00 et non 1h00
    ce qui me fausse localement la base temps

    En traduisant cela sur un graphe j'obtiens:
    * avant traitement, on voit bien le décalage:
    Nom : Capture2.JPG
Affichages : 237
Taille : 30,9 Ko
    * après traitement, la courbe est bien décalée de 1h vers la gauche mais la portion avant le changement d'heure n'est plus représentée alors que la donnée est correctement traitée dans le tableau ???
    Nom : Capture3.JPG
Affichages : 218
Taille : 16,0 Ko

    Quelqu'un a t'il une idée pour résoudre le problème de changement de base temps à l'heure exacte et visualiser tout le graphe ?
    Par ailleurs ce traitement semble très consommateur de ressource, peut on l'optimiser ?

    Merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 58
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    Pour résoudre mon problème je modifie directement la base temps des capteurs au niveau du script avec des if pour tester si la base temps est en GMT+2.
    Cela fonction mais il reste un problème.
    Lors du passage à l'heure d'hivers les courbes se superposent pendant 1 heure et là les conditions if ne fonctionnent pas.
    De plus Qlikview ne sait pas représenter graphiquement 1 expression avec 2 valeurs correspondant à une dimension identique: remplace l'expression par "-"
    Pièce jointe 324371

    Le seul moyen que je vois est de mettre une variable qui enregistre chaque base temps et la compare à la base temps du pas précédent lors de l'import du script.
    Elle permettrait de bloquer la condition à partir du moment ou la base temps ne serait plus croissante.
    J'ai déclaré ma variable en entête mais elle n'est pas reconnue.
    De plus je en sais pas si elle va s'alimenter à chaque changement de pas de temps comme dans une boucle en VBA.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    LET i=0;
    LET Date_prev=0;
    ...
    Directory;
    	concatenate load
    	IF (Num#([Date])> $(Date_prev), 'croissant','stop') as [test3],
     
    	if(Num#([Date])>=Num#('27/03/2016 03:00:00') and Num#([Date])<=Num#('30/10/2016 02:00:00'),timestamp(timestamp([Date],'DD/MM/YYYY hh:mm:ss')-1/24,'DD/MM/YYYY hh:mm:ss'),
    	if(Num#([Date])>=Num#('26/03/2017 03:00:00') and Num#([Date])<=Num#('29/10/2017 02:00:00'),timestamp(timestamp([Date],'DD/MM/YYYY hh:mm:ss')-1/24,'DD/MM/YYYY hh:mm:ss'),
    	timestamp([Date],'DD/MM/YYYY hh:mm:ss'))) as [DateNiv2],
     
    	Date_prev=num#([Date]),
    ...
    Si vous avez une idée, je suis preneur.

    Merci

Discussions similaires

  1. Conversion heure GMT en heure locale
    Par audrey1912 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/09/2012, 12h57
  2. Fonction pour Conversion heure GMT en heure locale
    Par fifou89 dans le forum Langage
    Réponses: 3
    Dernier message: 09/06/2010, 11h07
  3. [BO XI]Conversion Heure GMT -> heure locale
    Par ph roué dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/03/2008, 13h08
  4. [Dates] Conversion heure GMT vers heure local
    Par ggjedi dans le forum Langage
    Réponses: 3
    Dernier message: 19/10/2006, 10h17
  5. [MsSQL 2000]Conversion heure GMT
    Par prophetky dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 30/08/2005, 17h27

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