PDA

Ver la Versión Completa : ¿Como convertir de texto a tipo fecha en firebird?


Nelly
19-02-2007, 18:17:17
Hola a todos los foristas, espero tengan un hermoso dia.;)

El problema que me agobia es el siguiente: Primero que nada utilizo el firebird y como manejador IBExpert, tengo una tabla con un campo de tipo fecha, esta tabla estaba en Access, y al exporta los datos a firebird, el campo como tipo fecha, no exporta los datos, osea aparece nulo ese registro, lo que hice fue eliminar la tabla en firebird para exportarlo otra vez, pero esta vez el campo(fecha_elec), lo cambie a tipo texto con formato dd/mm/aa, y despues lo exporte a firebird, ahora bien, lo que quiero es convertirlo otra vez a tipo fecha, desde el ibexpert, pues si lo dejo como esta, es de tipo texto y asi no me es de gran utilidad, lo que hice para convertirlo fue lo siguiente:

cast( substring(fecha_elec from 4 for 2) || '/' ||
substring(fecha_elec from 1 for 2) || '/' ||
substring(fecha_elec from 7 for 4) as timestamp


Pero no funciona, marca un error el cual es el siguiente:
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, char 1.
cast.

No soy experta en la materia, por eso pido que me ayuden, de antemano gracias.

fdelamo
19-02-2007, 18:42:43
Hola,

amí esto me ha funcionado
select cast( substring('01/12/93' from 4 for 2) || '/' ||
substring('01/12/93' from 1 for 2) || '/' ||
substring('01/12/93' from 7 for 4) as timestamp) from rdb$database

prueba a cerrar las parentesis despues del timestamp, y primero, en lugar de timestamp, por varchar(10), para ver si te lo devuelve bien

Un saludo

luisgutierrezb
19-02-2007, 20:23:41
y no te funciona exportar la fecha en formato ISO? que viene siendo YYYYMMDD

Nelly
19-02-2007, 20:49:57
Hola,

Código SQL [-] (http://www.clubdelphi.com/foros/#)
select cast( substring('01/12/93' from 4 for 2) || '/' ||
substring('01/12/93' from 1 for 2) || '/' ||
substring('01/12/93' from 7 for 4) as timestamp) from rdb$database


Un saludo

Ok... solo lo selecciona, pero no quiero seleccionar si no agregar o cambiar el tipo texto por fecha, tengo el campo: fecha_eleccion varchar 50, pero quiero que sea fecha_eleccion timestamp. No logro convertir, me recomiendan agregar otro campo con tipo de dato fecha???, pero si hago eso como inserto los datos que tengo en el campo fecha_eleccion???, quizá me este ahogando en un vaso de agua, pero no encuentro una solución.

fdelamo
20-02-2007, 09:34:23
Hola Nelly,

El tema es que no se puede hacer el alter table para cambiar el tipo de dato al mismo tiempo que hacer el update, por lo que yo añadiría un campo nuevo como timestamp, lo actualizaría con la query correspondiente, borraría el fecha_eleccion que es varchar y renombraría el nuevo a fecha_eleccion.

Suponiendo que la tabla sea MITABLA:

Creamos el nuevo campo:
ALTER TABLE MITABLA ADD TEMP TIMESTAMP

Lo actualizamos

UPDATE MITABLA SET TEMP = cast( substring(FECHA_ELECCION from 4 for 2) || '/' ||
substring(FECHA_ELECCION from 1 for 2) || '/' ||
substring(FECHA_ELECCION from 7 for 4) as timestamp)


Borramos el campo inicial:
ALTER TABLE MITABLA DROP FECHA_ELECCION

Y cambiamos el nombre de la columna
ALTER TABLE MITABLA ALTER TEMP TO FECHA_ELECCION

Un saludo

Nelly
22-02-2007, 17:54:14
Hola fdelamo.... Oye mil gracias por tus consejos, segui al pie de la letra tu ejemplo y funciono de maravilla, tal como yo lo quise. No queria dejar pasar la oportunidad y agradecerte el ejemplo y la solución a mi problema. En serio mil gracias!!!!!!!!!!!!!!.

Besos y abrazos..... NELLY;)