Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   ¿Como convertir de texto a tipo fecha en firebird? (https://www.clubdelphi.com/foros/showthread.php?t=40505)

Nelly 19-02-2007 18:17:17

¿Como convertir de texto a tipo fecha en firebird?
 
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:
Código SQL [-]
  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
Código SQL [-]
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

Cita:

Empezado por fdelamo
Hola,

Código SQL [-]
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:
Código SQL [-]
ALTER TABLE MITABLA ADD TEMP TIMESTAMP

Lo actualizamos
Código SQL [-]
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:
Código SQL [-]
ALTER TABLE MITABLA DROP FECHA_ELECCION

Y cambiamos el nombre de la columna
Código SQL [-]
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;)


La franja horaria es GMT +2. Ahora son las 21:31:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi