Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Convertir champ date

Bonjour à tous,

J'ai essayé en vain de charger une colonne avec des dates et d'en extraire le mois ou l'année mais rien à faire cela ne fonctionne pas.

Voici le script que j'utilise :

LOAD Date,

Month(Date) as Mois

FROM (txt, utf8, no labels, delimiter is ',', msq);

Si j'essaie avec un autre fichier cela fonctionne, donc je pense que cela vient du format du champ date. Il faut peut être convertir ce champ au bon format avant ? Mais comment faire ?

Merci à tous pour votre aide !

1 Solution

Accepted Solutions
kevinchevrier
Partner - Creator III
Partner - Creator III

Utilises la fonction Mid()


Month(Date#(Mid(Date,1,10),'YYYYMMDD')) as Mois

View solution in original post

6 Replies
kevinchevrier
Partner - Creator III
Partner - Creator III

Bonjour Jean,

Si c'est un problème de format, je te conseille d'utiliser les fonctions d'interprétation.

Exemple, si c'est une date au format YYYYMMDD soit 20171103, alors tu fais :

Month(Date#(Date,'YYYYMMDD')) as Mois

Ainsi Qlikview sait où se trouve ton mois.

Kevin

Anonymous
Not applicable
Author

Bonjour.

Après lecture de ton fichier csv, le caractère délimitant chaque champs n'est pas un ',', mais plutôt un espace.

De ce fait, ton script charge dans un seul champs toute la ligne; et QlikView n'arrive pas à interpréter "2017-04-21 08:41:18.177151+00".

2 solutions:

1 - tu supprimes les éléments non interprétables suivants "+00".

Il te reste donc "2017-04-21 08:41:18.177151", que QlikView est tout à fait capable de comprendre.

2 - tu modifie ton load, en utilisant le caractère de séparation "espace"

LOAD @1 as Date,

     @2 as Time,

     Month(@1) as Mois

FROM

[date.csv]

(txt, utf8, no labels, delimiter is ' ', msq);

Anonymous
Not applicable
Author

Bonjour,

merci pour vos réponses !

J'ai essayé avec la fonction Date# mais malheureusement ça ne fonctionne pas car j'ai un champ qui ressemble à ça :

2017-04-21 08:38:05.70269+00

Il faudrait que je puisse demander à Qlikview de ne pas prendre en compte l'horaire dans la cellule.

@David :

Est ce qu'il y a possibilité de demander à Qlikview d'utiliser les séparateurs Espace pour une colonne et le séparateur virgule pour les autres colonnes ? Car dans mon fichier j'ai toutes mes colonnes dont le séparateur est la virgule sauf cette colonne.

En espérant être assez suffisamment explicite.

Merci beaucoup

Anonymous
Not applicable
Author

Est ce qu'il y a possibilité de demander à Qlikview d'utiliser les séparateurs Espace pour une colonne et le séparateur virgule pour les autres colonnes ?

Je ne pense pas que ce soit possible.

Par contre, s'il s'agit d'un fichier où le séparateur est ",", il s'agirait de parser ta première colonne.

Quelque chose qui ressemblerait à :

LOAD

SubField(@1, ' ', 1) as date,

Month(SubField(@1, ' ', 1)) as month,

*

FROM

[date.csv]

(txt, utf8, no labels, delimiter is ',', msq);

kevinchevrier
Partner - Creator III
Partner - Creator III

Utilises la fonction Mid()


Month(Date#(Mid(Date,1,10),'YYYYMMDD')) as Mois

Anonymous
Not applicable
Author

Merci à tous.

En effet avec la fonction mid ca fonctionne parfaitement.

Merci !