7 Replies Latest reply: Jan 11, 2018 4:34 AM by Nathalie Roche RSS

    Date et heure

    Nathalie Roche

      Bonjour,

      j'ai deux champs date que j'aimerai concaténer:

      -un champ avec la date (ex: 16/01/2017 00:00:00)

      -un champ date qui est en fait l'heure (ex: 01/01/2017 14:43:05)

      J'aimerai concaténer les deux pour pouvoir faire des calculs dessus par la suite, notamment prendre le min.

       

      Pour l'instant, j'ai écrit:

      (concat(to_char(CORTEXTE.MODALITE.DD,'DD/MM/YYYY'),concat(' ',to_char(CORTEXTE.MODALITE.HD,'HH24:MI'))))

       

      Mais quand j'en prends le min(), il me sélectionne selon le premier chiffre de la date et non pas selon la date en elle-même. Cette variable a l'air d'être du texte..

       

      Si vous avez une idée.

       

      Merci!

       

      Nathalie

        • Re: Date et heure
          Bruno Bertels

          Bonjour

           

          Essaye d'inclure ta mesure dans avec Timestamp() ou Timestamp#()

          timestamp(

          (concat(to_char(CORTEXTE.MODALITE.DD,'DD/MM/YYYY'),concat(' ',to_char(CORTEXTE.MODALITE.HD,'HH24:MI'))))

          )


          ou

          Timestamp#(

          (concat(to_char(CORTEXTE.MODALITE.DD,'DD/MM/YYYY'),concat(' ',to_char(CORTEXTE.MODALITE.HD,'HH24:MI'))))

          )


          puis retester ton min()

          • Re: Date et heure
            Sébastien Fatoux

            si tes champs sont déjà des dates (QlikView), tu peux simplement utiliser ceci :

             

            TimeFormat(Floor(CORTEXTE.MODALITE.DD) + Frac(CORTEXTE.MODALITE.HD))

             

            Si c’est du texte :

             

            TimeFormat(TimeFormat#(Left(CORTEXTE.MODALITE.DD, 11)  & Right(CORTEXTE.MODALITE.HD, 8), 'DD/MM/YYYY hh:mm:ss'))

            • Re: Date et heure
              Nathalie Roche

              Bonsoir,

              Merci pour vos réponses, mais j'ai toujours un message d'erreur.

               

              Je me demande si le problème ne vient pas plutôt du fait que j'ai écris un script en SQL:

               

              T1:

              SELECT

              CORTEXTE.PATIENTS.P4 as "ClePatient",

              CORTEXTE.PATIENTS.IPP_ADMIN,

              CORTEXTE.PATIENTS.NOMPRENOM,

              CORTEXTE.MODALITE.DD,

              CORTEXTE.MODALITE.HD,

              to_char(CORTEXTE.MODALITE.HD,'HH24:MI:SS') as HeureDD,

              TimeFormat(TimeFormat#(Left(CORTEXTE.MODALITE.DD, 11) & Right(CORTEXTE.MODALITE.HD, 8), 'DD/MM/YYYY hh:mm:ss')) as "MinDD",

              /*Date(CORTEXTE.MODALITE.HD,'hh:mm') as MinDD,*/

              (to_char(CORTEXTE.MODALITE.DD,'YYYY')) as "MinAnDD"

              FROM

              CORTEXTE.MODALITE LEFT JOIN

              CORTEXTE.PATIENTS ON CORTEXTE.MODALITE.E4 = CORTEXTE.PATIENTS.P4;

              /*GROUP BY

              CORTEXTE.PATIENTS.P4,

              CORTEXTE.PATIENTS.IPP_ADMIN,

              CORTEXTE.PATIENTS.NOMPRENOM;*/

                • Re: Date et heure
                  Sébastien Fatoux

                  Si tu nous dit pas tout ;-)

                   

                  Ce sont des expressions Qlik que je t’ai donné, essaye comme ceci :

                   

                   

                  T1:

                  LOAD

                    *,

                    TimeFormat(TimeFormat#(Left(CORTEXTE.MODALITE.DD, 11)  & Right(CORTEXTE.MODALITE.HD, 8), 'DD/MM/YYYY hh:mm:ss')) As MinDD;

                  SELECT

                  CORTEXTE.PATIENTS.P4 as "ClePatient",

                  CORTEXTE.PATIENTS.IPP_ADMIN,

                  CORTEXTE.PATIENTS.NOMPRENOM,

                  CORTEXTE.MODALITE.DD,

                  CORTEXTE.MODALITE.HD,

                  to_char(CORTEXTE.MODALITE.HD,'HH24:MI:SS') as HeureDD,

                  /*TimeFormat(TimeFormat#(Left(CORTEXTE.MODALITE.DD, 11) & Right(CORTEXTE.MODALITE.HD, 8), 'DD/MM/YYYY hh:mm:ss')) as "MinDD",

                  Date(CORTEXTE.MODALITE.HD,'hh:mm') as MinDD,*/

                  (to_char(CORTEXTE.MODALITE.DD,'YYYY')) as "MinAnDD"

                  FROM

                  CORTEXTE.MODALITE LEFT JOIN

                  CORTEXTE.PATIENTS ON CORTEXTE.MODALITE.E4 = CORTEXTE.PATIENTS.P4;

                  /*GROUP BY

                  CORTEXTE.PATIENTS.P4,

                  CORTEXTE.PATIENTS.IPP_ADMIN,

                  CORTEXTE.PATIENTS.NOMPRENOM;*/

                • Re: Date et heure
                  Nathalie Roche

                  Bonsoir,

                  J'ai trouvé l'expression pour concaténer la date et l'heure.

                  Mais après quand je prends le min, le code ne marche plus... c'est pas encore gagné!

                   

                  SELECT

                  CORTEXTE.PATIENTS.P4 as "ClePatient",

                  CORTEXTE.PATIENTS.IPP_ADMIN,

                  CORTEXTE.PATIENTS.NOMPRENOM,

                  /*CORTEXTE.MODALITE.DD,

                  CORTEXTE.MODALITE.HD,

                  to_char(CORTEXTE.MODALITE.HD,'HH24:MI:SS') as HeureDD,*/

                  Min(TO_DATE(to_char(CORTEXTE.MODALITE.DD,'DD/MM/YYYY')||' '||to_char(CORTEXTE.MODALITE.HD,'HH24:MI'), 'DD/MM/YYYY HH24:MI')) as "MinDD",

                  (to_char(CORTEXTE.MODALITE.DD,'YYYY')) as "MinAnDD"

                  FROM

                  CORTEXTE.MODALITE LEFT JOIN

                  CORTEXTE.PATIENTS ON CORTEXTE.MODALITE.E4 = CORTEXTE.PATIENTS.P4

                  GROUP BY

                  CORTEXTE.PATIENTS.P4,

                  CORTEXTE.PATIENTS.IPP_ADMIN,

                  CORTEXTE.PATIENTS.NOMPRENOM;

                    • Re: Date et heure
                      Sébastien Fatoux

                      tu n’as pas mis le min sur ta 2eme expression :

                       

                      SELECT

                      CORTEXTE.PATIENTS.P4 as "ClePatient",

                      CORTEXTE.PATIENTS.IPP_ADMIN,

                      CORTEXTE.PATIENTS.NOMPRENOM,

                      /*CORTEXTE.MODALITE.DD,

                      CORTEXTE.MODALITE.HD,

                      to_char(CORTEXTE.MODALITE.HD,'HH24:MI:SS') as HeureDD,*/

                      Min(TO_DATE(to_char(CORTEXTE.MODALITE.DD,'DD/MM/YYYY')||' '||to_char(CORTEXTE.MODALITE.HD,'HH24:MI'), 'DD/MM/YYYY HH24:MI')) as "MinDD",

                      Min(to_char(CORTEXTE.MODALITE.DD,'YYYY')) as "MinAnDD"

                      FROM

                      CORTEXTE.MODALITE LEFT JOIN

                      CORTEXTE.PATIENTS ON CORTEXTE.MODALITE.E4 = CORTEXTE.PATIENTS.P4

                      GROUP BY

                      CORTEXTE.PATIENTS.P4,

                      CORTEXTE.PATIENTS.IPP_ADMIN,

                      CORTEXTE.PATIENTS.NOMPRENOM;