Qlik Community

Groupe des Utilisateurs Francophones

Announcements
Now Live: Qlik Sense SaaS Simplified Authoring – Analytics Creation for Everyone: READ DETAILS
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Date DDMMYYYY convertir DD/MM/YYYY dans le script

Bonjour.

J'ai une table ou sont stockées des dates au format DDMMYYYY. J'aimerai les convertir directement dans le script en DD/MM/YYYY.

Voici mon script:

SQL SELECT ATELIER as Atelier,

    DATECREATION as [Date de création],

    DATETRT as [Date de traitement],

    DUREETRAITEMENT as [Durée de traitement],

    ETAT as Etat,

    IDOPE as [Id Opérateur],

    IDQUALIFICATIF as [Id Qualificatif],

    IDSPHERE as [Id Sphère],

    MOTIF as Motif,

    NATURE as Nature,

    NBLIGNES as [Nombre de lignes],

    NBPAGES as [Nombre de pages],

    NBTACHES as [Nombre de tâches]

FROM "maTable";

D'avance merci pour votre aide.

1 Solution

Accepted Solutions
sfatoux72
Partner - Specialist
Partner - Specialist

Bruno à raison pour le preceding LOAD, mais le code doit être le suivant :

LOAD

   *,

   Date(Date#(DATECREATION, 'DDMMYYYY'), 'DD/MM/YYYY') as [Date de création],

   Date(Date#(DATETRT, 'DDMMYYYY'), 'DD/MM/YYYY') as [Date de traitement];

SQL SELECT

    ATELIER as Atelier,

    DATECREATION ,

    DATETRT,

    DUREETRAITEMENT as [Durée de traitement],

    ETAT as Etat,

    IDOPE as [Id Opérateur],

    IDQUALIFICATIF as [Id Qualificatif],

    IDSPHERE as [Id Sphère],

    MOTIF as Motif,

    NATURE as Nature,

    NBLIGNES as [Nombre de lignes],

    NBPAGES as [Nombre de pages],

    NBTACHES as [Nombre de tâches]

FROM "maTable";

DROP Field DATECREATION;

DROP Field DATETRT;

View solution in original post

11 Replies
sravanthialuval
Creator
Creator

Hi,

SQL SELECT ATELIER as Atelier,

   Date(DATECREATION,'DD/MM/YYYY') as [Date de création],

    Date(DATETRT,'DD/MM/YYYY') as [Date de traitement],

    DUREETRAITEMENT as [Durée de traitement],

    ETAT as Etat,

    IDOPE as [Id Opérateur],

    IDQUALIFICATIF as [Id Qualificatif],

    IDSPHERE as [Id Sphère],

    MOTIF as Motif,

    NATURE as Nature,

    NBLIGNES as [Nombre de lignes],

    NBPAGES as [Nombre de pages],

    NBTACHES as [Nombre de tâches]

FROM "maTable";

Not applicable
Author

J'avais essayé un truc du genre mais:

ErrorSource: Microsoft OLE DB Provider for SQL Server, ErrorMsg: 'Date' n'est pas une option nom de fonction intégrée reconnue.

brunobertels
Specialist III
Specialist III

Bonjour

L’instruction SQL select ne reconnait pas le code Qlik d'ou le message d'erreur

essaye avec un preceding load :

Load

  Date(DATECREATION,'DD/MM/YYYY') as [Date de création],

    Date(DATETRT,'DD/MM/YYYY') as [Date de traitement]

;

SQL SELECT ATELIER as Atelier,

    DATECREATION ,

    DATETRT,

    DUREETRAITEMENT as [Durée de traitement],

    ETAT as Etat,

    IDOPE as [Id Opérateur],

    IDQUALIFICATIF as [Id Qualificatif],

    IDSPHERE as [Id Sphère],

    MOTIF as Motif,

    NATURE as Nature,

    NBLIGNES as [Nombre de lignes],

    NBPAGES as [Nombre de pages],

    NBTACHES as [Nombre de tâches]

FROM "maTable";

almamy_diaby
Creator
Creator

left(DATECREATION,2)&'/'&mid(DATECREATION,3,2)&'/'&right(DATECREATION,4) as as [Date de création],

left(DATETRT,2)&'/'&mid(DATETRT,3,2)&'/'&right(DATETRT,4) as as [Date de traitement],

Not applicable
Author

Ca me donne ça comme date:

Capture.PNG

sfatoux72
Partner - Specialist
Partner - Specialist

Bruno à raison pour le preceding LOAD, mais le code doit être le suivant :

LOAD

   *,

   Date(Date#(DATECREATION, 'DDMMYYYY'), 'DD/MM/YYYY') as [Date de création],

   Date(Date#(DATETRT, 'DDMMYYYY'), 'DD/MM/YYYY') as [Date de traitement];

SQL SELECT

    ATELIER as Atelier,

    DATECREATION ,

    DATETRT,

    DUREETRAITEMENT as [Durée de traitement],

    ETAT as Etat,

    IDOPE as [Id Opérateur],

    IDQUALIFICATIF as [Id Qualificatif],

    IDSPHERE as [Id Sphère],

    MOTIF as Motif,

    NATURE as Nature,

    NBLIGNES as [Nombre de lignes],

    NBPAGES as [Nombre de pages],

    NBTACHES as [Nombre de tâches]

FROM "maTable";

DROP Field DATECREATION;

DROP Field DATETRT;

Not applicable
Author

Ok ça fonctionne très bien.

Je me permet de pousser un peu du coup.

J'ai pour habitude de stocker le trimestre comme ceci:  datename(qq, DATECREATION) as Quarter

Car j'aime bien stocker une valeur numérique.

Même question pour les numéro de mois d'ailleurs.

Comment puis-je faire dans un LOAD ?

Cordialement,

sfatoux72
Partner - Specialist
Partner - Specialist

Tu peux utiliser ta fonction datename(qq, DATECREATION) as Quarter dans la partie SQL SELECT.

Dans la partie LOAD tu peux utiliser ça :   Div(Month(DATECREATION)-1, 3) + 1 as Quarter

Not applicable
Author

C'est bizarre, il considère que janvier est au Trimestre 4 avec la formule du LOAD.

Je ne comprends pas nom plus pourquoi j'ai cette erreur quand je lance la formule SQL: ErrorSource: Microsoft OLE DB Provider for SQL Server, ErrorMsg: Une erreur de dépassement arithmétique s'est produite lors de la conversion de expression en type de données datetime.