to_date arrangiert TT / MM / JJJ
Ich habe eine Spalte als Zeichenfolge, die 10/12/2020 13:14:39
ich in das Datumsformat konvertieren möchte (das mache ich später mit dem Refactor-Tool). Zuerst muss ich dies neu anordnen, damit die Zeit verworfen und die dd/MM/yyyy
angeordnet wird als yyyy/MM/dd
.
Ich benutze einen Feldrechner. Wie mache ich das?
Ich habe versucht to_date("CreatedAt", 'dd/MM/yyyy')
und format_date("CreatedAt", 'dd/MM/yyyy')
weder das richtige Ergebnis geben.
Antworten
Da Sie mit einer Datums- / Uhrzeitzeichenfolge beginnen, können Sie diese vollständig analysieren und das Ergebnis in einem Schritt als einfache Datumszeichenfolge formatieren:
format_date(to_datetime('10/12/2020 13:14:39',
'dd/MM/yyyy HH:mm:ss'),
'yyyy/MM/dd')
oder
format_date(to_datetime("CreatedAt",'dd/MM/yyyy HH:mm:ss'),'yyyy/MM/dd')
(Beachten Sie die "Vorschau: '2020/12/10'" im folgenden Edit/Select/Select by Expression
Fenster:

Die Dokumentation für das Attribut von QGIS to_data
und to_datetime
Ausdruck format
sowie dessen Analyse befindet sich in QT ashttps://doc.qt.io/qt-5/qdate.html#fromString-1 und https://doc.qt.io/qt-5/qtime.html#toString. Sie finden Ihren Weg zu diesen durch den Beschreibungstext der QGIS-Ausdrucksfunktion.
Sicher gibt es einen besseren Weg, nach einer zufälligen Vermutung habe ich das bekommen.
Substr("CreatedAT",0,-9)
To_date("CreatedAt", format('dd/MM/yyyy'))
Format_date("EndDate",'yyyy/MM/dd')
Ich werde dies für eine Weile hier lassen, um den Leuten die Möglichkeit zu geben, dies auf beredtere Weise zu tun.