Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-02-2007
Nelly Nelly is offline
Miembro
 
Registrado: oct 2005
Posts: 148
Poder: 19
Nelly Va por buen camino
¿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.
Responder Con Cita
  #2  
Antiguo 19-02-2007
fdelamo fdelamo is offline
Miembro
 
Registrado: oct 2005
Ubicación: Sotoca de Tajo - Guadalajara (ESP)
Posts: 86
Poder: 19
fdelamo Va por buen camino
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
__________________
Sotoca Web
Responder Con Cita
  #3  
Antiguo 19-02-2007
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
y no te funciona exportar la fecha en formato ISO? que viene siendo YYYYMMDD
Responder Con Cita
  #4  
Antiguo 19-02-2007
Nelly Nelly is offline
Miembro
 
Registrado: oct 2005
Posts: 148
Poder: 19
Nelly Va por buen camino
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.
Responder Con Cita
  #5  
Antiguo 20-02-2007
fdelamo fdelamo is offline
Miembro
 
Registrado: oct 2005
Ubicación: Sotoca de Tajo - Guadalajara (ESP)
Posts: 86
Poder: 19
fdelamo Va por buen camino
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
__________________
Sotoca Web
Responder Con Cita
  #6  
Antiguo 22-02-2007
Nelly Nelly is offline
Miembro
 
Registrado: oct 2005
Posts: 148
Poder: 19
Nelly Va por buen camino
Smile

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
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
convertir una fecha electrica Oracle 3 07-12-2005 19:40:41
Convertir texto a fecha magm2000 SQL 2 11-10-2005 16:22:40
Como Convertir un dato Integer ó Float a String en FireBird???? AGAG4 Firebird e Interbase 8 04-12-2004 02:59:47
Convertir texto a Tipo Título Tangela Varios 1 20-10-2004 14:57:26
Como actualizar campos de Texto en FireBird DavidR Conexión con bases de datos 2 01-11-2003 01:12:28


La franja horaria es GMT +2. Ahora son las 03:37:27.


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
Copyright 1996-2007 Club Delphi