[RESUELTO] Convertir varchar a date en una consulta.

Discute sobre las herramientas de la base de datos
Responder
vaguete
Mensajes: 8
Registrado: Mié Sep 28, 2016 11:29 am

[RESUELTO] Convertir varchar a date en una consulta.

Mensaje por vaguete »

Hola a todos.

Tengo una base y he guardado los campos de fecha como texto (VARCHAR) con el formato dd/mm/aaaa. Quiero hacer una consulta para buscar un registro entre dos fechas, eso lo tengo bastante claro como hacer, pero el problema viene que al estar las fechas como texto no hace la consulta correctamente.

Tengo la base bastante avanzada y para guardar los datos en las tablas lo hago por código, por lo cual cambiar el campo de fecha de varchar a date en las tablas me daría luego bastantes problemas y no me gustaría hacerlo.

Mi idea era en una consulta convertir la fecha VARCHAR a DATE y luego trabajar con esa columna, pero he sido incapaz. He rebuscado por todos los ejemplos que tenéis (que tanta ayuda me han aportado) por este foro pero nada.

CAST("fecha" AS DATE) ----- Desde la consulta y no funciona , me sale el error "No se pudieron cargar los contenidos de los datos . Wrong data type:java.lang.IllegalArgumentException in statement.....

si la convierto a CAST("fecha" AS CHAR) si funciona... pero quiero convertirlo a DATE.

También indico que este campo puede tener valores nulos.
Muchas gracias a todos.
Última edición por vaguete el Vie Mar 24, 2017 8:16 am, editado 1 vez en total.
LibreOffice 5.1.3.2 en Windows 7
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Convertir varchar a date en una consulta.

Mensaje por RMG »

Hola,

Prueba si esto te funciona.

EXTRACT( DAY FROM CAST( "fechatexto" AS DATE ) ) || '-' || EXTRACT( MONTH FROM CAST( "fechatexto" AS DATE ) ) || '-' || EXTRACT( YEAR FROM CAST( "fechatexto" AS DATE ) )

Por cierto CAST( "fechatexto" AS DATE ) a mi no me da error, solo que devuelve un número.

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
vaguete
Mensajes: 8
Registrado: Mié Sep 28, 2016 11:29 am

Re: Convertir varchar a date en una consulta.

Mensaje por vaguete »

La otra opción que me dices también la había probado, pero me sigue saltando el error.... "No se pudieron cargar los contenidos de los datos . Wrong data type:java.lang.IllegalArgumentException in statement.....


Por código si que puedo cambiar de texto a fecha, pero el error me lo da al hacerlo desde una consulta.

gracias.
LibreOffice 5.1.3.2 en Windows 7
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Convertir varchar a date en una consulta.

Mensaje por RMG »

Quizás sea problema de LO, como te digo en AOO funciona bien.

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
vaguete
Mensajes: 8
Registrado: Mié Sep 28, 2016 11:29 am

Re: Convertir varchar a date en una consulta.

Mensaje por vaguete »

Después de volverme loco buscando al final he encontrado la solución; el problema residía en que yo guardaba la fecha como dd/mm/aaaa y para poder convertir el texto en fecha en la consulta tiene que tener el formato aaaa-mm-dd.

Pongo la expresión que he utilizado para poner la fecha correctamente por si ha alguien le puede valer.

SUBSTR( "fechatexto", 7, 4 ) || '-' || SUBSTR( "fechatexto", 4, 2 ) || '-' || SUBSTR( "fechatexto", 1, 2)

Una vez puesto el texto correctamente ya puedo convertirla en fecha tal y como indicas para poder hacer consultas.

Muchas gracias por todo.

Un saludo.
LibreOffice 5.1.3.2 en Windows 7
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Convertir varchar a date en una consulta.

Mensaje por RMG »

Recuerda poner como RESUELTO, nos ayuda a mantener un foro más organizado.

https://forum.openoffice.org/es/forum/v ... f=3&t=2668

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Responder