Processing math: 100%

4 votos

ogr2ogr, forzar el lanzamiento de DATE en una petición SQL

Estoy tratando de completar los valores nulos de la columna en un archivo .shp con un valor por defecto. Mi columna tiene un tipo DATE.

Esquema de archivos : "COLUMN_NAME TYPE(SIZE)"

  • Entrada (con valores nulos) :

    CLICHE VARCHAR(80) | DATE DATE(10) | HEURE_TU VARCHAR(80)
  • Salida (con valor defautl) :

    CLICHE VARCHAR(80) | DATE_PVA DATE(10) | HEURE_TU VARCHAR(80)

Lo intenté:

ogr2ogr -dialect sqlite -sql "SELECT geometry, CLICHE, CASE WHEN DATE IS NULL THEN '2012-01-01' ELSE DATE END as DATE_PVA, HEURE_TU FROM 'my_table'" outputfile.shp inputfile.shp

Pero obtengo un archivo con una columna DATE_PVA escrita en VARCHAR(80).

Así que lo intenté:

ogr2ogr -dialect sqlite -sql "SELECT geometry, CLICHE, CAST((CASE WHEN DATE IS NULL THEN '2012-01-01' ELSE DATE END) as DATE) as DATE_PVA, HEURE_TU FROM 'my_table'" outputfile.shp inputfile.shp

Pero obtengo un archivo de salida con una columna DATE_PVA de tipo INT(9).

Estoy bastante seguro de que el formato 'aaaa-mm-dd' es el bueno, sin embargo también he intentado modificar el formato de fecha '01-01-2012' y '01/01/2012'. No hay mejores resultados...

Así que no sé qué puedo hacer. Necesito una solución de línea de comandos para poder ejecutarlo en un script. Sin embargo, puedo probar otra solución que no sea ogr2ogr si es necesario.

2voto

Joe Puntos 16

Tanto los shapefiles como SQLite tienen algunas rarezas en el manejo de los tiempos. Puede ser posible hacer lo que quieres haciendo una conversión de un shapefile a otro. Sin embargo, yo mismo convertiría primero el shapefile en la base de datos Spatialite y actualizaría el campo de tiempo con SQL después. Otra opción es actualizar su shapefile en el lugar.

ogrinfo -dialect sqlite -sql "update inputfile set date=
'2016/10/10' where date is null" inputfile.shp

0 votos

Ok es encontrar, ¡gracias! No conocía el ogrinfo... Es tan simple con esta solución.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X