to_date organizowanie dd / MM / rrrr

Dec 18 2020

Mam kolumnę jako ciąg, 10/12/2020 13:14:39który chcę przekonwertować na format daty (zrobię to za pomocą narzędzia refaktoryzującego później). Najpierw muszę to zmienić, aby czas został odrzucony, a element dd/MM/yyyyzostał ustawiony jako yyyy/MM/dd.

Używam kalkulatora pola, jak to zrobić?

Próbowałem to_date("CreatedAt", 'dd/MM/yyyy')i format_date("CreatedAt", 'dd/MM/yyyy')żadne z nich nie dało poprawnego wyniku.

Odpowiedzi

3 DaveX Dec 18 2020 at 02:19

Ponieważ zaczynasz od ciągu daty i godziny, możesz go w pełni przeanalizować i sformatować wynik jako zwykły ciąg daty w jednym kroku:

format_date(to_datetime('10/12/2020 13:14:39',
   'dd/MM/yyyy HH:mm:ss'),
   'yyyy/MM/dd')

lub

format_date(to_datetime("CreatedAt",'dd/MM/yyyy HH:mm:ss'),'yyyy/MM/dd')

(Zwróć uwagę na „Podgląd:„ 2020/12/10 ”” w Edit/Select/Select by Expressionoknie poniżej:

Dokumentacja QGIS to_datai atrybutu to_datetimewyrażenia formatoraz jego analizy jest w QT jakohttps://doc.qt.io/qt-5/qdate.html#fromString-1 i https://doc.qt.io/qt-5/qtime.html#toString. Możesz znaleźć swoją drogę do nich poprzez tekst opisu funkcji wyrażenia QGIS.

1 SpatialDigger Dec 18 2020 at 00:51

Z pewnością jest lepszy sposób, po przypadkowym przypuszczeniu, że to dostałem.

Substr("CreatedAT",0,-9)
To_date("CreatedAt", format('dd/MM/yyyy'))
Format_date("EndDate",'yyyy/MM/dd')

Zostawię to tutaj na chwilę, aby dać ludziom szansę na bardziej elokwentny sposób zrobienia tego.