to_date avec jj / MM / aaa
J'ai une colonne sous forme de chaîne que 10/12/2020 13:14:39
je souhaite convertir au format Date (je le ferai en utilisant l'outil de refactorisation plus tard). Je dois d'abord réorganiser cela pour que le temps soit annulé et que le dd/MM/yyyy
soit organisé comme yyyy/MM/dd
.
J'utilise la calculatrice de terrain, comment faire?
J'ai essayé to_date("CreatedAt", 'dd/MM/yyyy')
et je n'ai format_date("CreatedAt", 'dd/MM/yyyy')
pas donné le résultat correct.
Réponses
Puisque vous commencez par une chaîne datetime, vous pouvez l'analyser complètement et mettre en forme le résultat sous forme de chaîne de date simple en une seule étape:
format_date(to_datetime('10/12/2020 13:14:39',
'dd/MM/yyyy HH:mm:ss'),
'yyyy/MM/dd')
ou
format_date(to_datetime("CreatedAt",'dd/MM/yyyy HH:mm:ss'),'yyyy/MM/dd')
(Notez le "Aperçu: '2020/12/10'" dans la Edit/Select/Select by Expression
fenêtre ci-dessous:

La documentation de l' attribut QGIS to_data
et de l' to_datetime
expression format
et son analyse est en QT commehttps://doc.qt.io/qt-5/qdate.html#fromString-1 et https://doc.qt.io/qt-5/qtime.html#toString. Vous pouvez trouver votre chemin vers ceux-ci via le texte de description de la fonction d'expression QGIS.
Il y a sûrement un meilleur moyen, après une supposition aléatoire, j'ai compris cela.
Substr("CreatedAT",0,-9)
To_date("CreatedAt", format('dd/MM/yyyy'))
Format_date("EndDate",'yyyy/MM/dd')
Je vais laisser cela ici pendant un moment pour donner aux gens la chance de trouver une façon plus éloquente de le faire.