to_date organizando dd / MM / aaa

Dec 18 2020

Tengo una columna como una cadena 10/12/2020 13:14:39que quiero convertir al formato de fecha (lo haré usando la herramienta de refactorización más adelante). Primero necesito reorganizar esto para descartar el tiempo y dd/MM/yyyyorganizarlo como yyyy/MM/dd.

Estoy usando la calculadora de campo, ¿cómo hago esto?

Lo he intentado to_date("CreatedAt", 'dd/MM/yyyy')y format_date("CreatedAt", 'dd/MM/yyyy')ninguno da el resultado correcto.

Respuestas

3 DaveX Dec 18 2020 at 02:19

Dado que está comenzando con una cadena de fecha y hora, puede analizarla completamente y formatear el resultado como una cadena de fecha simple en un solo paso:

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

o

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

(Tenga en cuenta la "Vista previa: '2020/12/10'" en la Edit/Select/Select by Expressionventana siguiente:

La documentación para el atributo QGIS to_datay la to_datetimeexpresión formaty su análisis está en QT comohttps://doc.qt.io/qt-5/qdate.html#fromString-1 y https://doc.qt.io/qt-5/qtime.html#toString. Puede encontrar su camino a través del texto de descripción de la función de expresión QGIS.

1 SpatialDigger Dec 18 2020 at 00:51

Seguramente hay una mejor manera, después de una suposición aleatoria, obtuve esto.

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

Dejaré esto aquí por un tiempo para darle a la gente la oportunidad de una forma más elocuente de hacer esto.