Skip to main content
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

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

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
Master

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

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

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

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.