to_date avec jj / MM / aaa

Dec 18 2020

J'ai une colonne sous forme de chaîne que 10/12/2020 13:14:39je 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/yyyysoit 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

3 DaveX Dec 18 2020 at 02:19

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 Expressionfenêtre ci-dessous:

La documentation de l' attribut QGIS to_dataet de l' to_datetimeexpression formatet 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.

1 SpatialDigger Dec 18 2020 at 00:51

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.