to_date arrangiert TT / MM / JJJ

Dec 18 2020

Ich habe eine Spalte als Zeichenfolge, die 10/12/2020 13:14:39ich 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/yyyyangeordnet 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

3 DaveX Dec 18 2020 at 02:19

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 ExpressionFenster:

Die Dokumentation für das Attribut von QGIS to_dataund to_datetimeAusdruck formatsowie 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.

1 SpatialDigger Dec 18 2020 at 00:51

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.