Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-11-2007
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 264
Poder: 22
Rockin Va por buen camino
Cambio tipo de datos

Hola a todos, tengo una BD Firebird con un campor fecha declarado como Char con registros, mi pregunta es ¿seria posible cambiar el tipo de datos a Date sin perder los registros?. Lo he intentado de varias manera y he buscado en el foro y nada.

Gracias de antemano.
Saludos.
Responder Con Cita
  #2  
Antiguo 26-11-2007
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Podrías crear un nuevo campo DATE, luego tranferir los datos a este nuevo campo y al final eliminas el viejo campo. Después de todo, cambias el nombre del nuevo campo para que coicida con el anterior.

El solo una idea. Saludos.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #3  
Antiguo 26-11-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Y es, a mi punto de vista, la mejor solución...


Saludos...
Responder Con Cita
  #4  
Antiguo 26-11-2007
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 264
Poder: 22
Rockin Va por buen camino
Si es lo que habia pensado, pero como es la manera mas rapida de copiar los registros de un campo a otro, mediante UPDATE?
Responder Con Cita
  #5  
Antiguo 26-11-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Así es...

Puedes hacer algo como:

Código SQL [-]
update tabla set campofechadate = cast(campofechachar as date)

Saludos...
Responder Con Cita
  #6  
Antiguo 26-11-2007
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 264
Poder: 22
Rockin Va por buen camino
lo he intentado asi, pero me da error al convertir el formato, la fecha esta guardad como dd/mm/yyyy pero firebird la interpreta al reves, y me da el error convert string "15/10/2007". Como puedo cambiar el formato guardado?
Responder Con Cita
  #7  
Antiguo 26-11-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Hola a todos!

Creo que el siguiente ejemplo puede darte una idea:
Código SQL [-]
Select

Cast (SubString ('15/10/2007' From 7 For 4) || '-' ||
      SubString ('15/10/2007' From 4 For 2) || '-' ||
      SubString ('15/10/2007' From 1 For 2) As Date)

From RDB$Database
La clave es separar las partes de la fecha con la función SubString, concatenándolas de nuevo bajo el formato universal ISO (aaaa-mm-dd) y, finalmente, haciendo un molde de tipo (Cast) para convertir la cadena en un valor de tipo Date.

Espero te sirva, no dejes de contarnos cómo te fue.

Un abrazo convertido.

Al González.
Responder Con Cita
  #8  
Antiguo 27-11-2007
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 264
Poder: 22
Rockin Va por buen camino
al final lo exporte a access al campo char, cree el campo date y lo importe desde access.

Era lo mas facil

Saludos y gracias a todos
Responder Con Cita
  #9  
Antiguo 18-12-2007
Shikanda Shikanda is offline
Miembro
 
Registrado: ago 2007
Posts: 36
Poder: 0
Shikanda Va por buen camino
Ya de paso...

Aprovecho este hilo para hacer una pregunta.

Me encontraba en un caso muy parecido al que comentais. Tenia que hacer que un campo fuera clave primaria (y no nulo) y como no podia modificar el campo, hice otro auxiliar donde copié el contenido, eliminé el original, creé otro campo nuevo (con el nombre del original) a donde volvi a copiar el contenido y finalmente borré el campo auxiliar.
El problema viene al manejar la tabla, ya que mi "nuevo" campo clave no tiene el indice del original dentro de la tabla, por lo que se me ha desorganizado todo un poco. He buscado la forma de especificar el indice en el que quiero añadir un campo dentro de la tabla pero no hay forma. A alguien se le ocurre el modo de hacerlo (o alternativa a semejante desastre)??
Responder Con Cita
Respuesta



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
DBChart, Cambio de Tipo de Grafica albertmac Gráficos 25 20-10-2008 15:23:37
Cambio de tipo en campo berfer Firebird e Interbase 0 23-08-2006 18:45:34
Cambio del sistema operativo de una base de datos HombreSigma Conexión con bases de datos 1 19-07-2006 23:52:57
Obtener el tipo de cambio K4RL0S Internet 3 01-04-2004 02:41:18
CAmbio de base de datos jsanchez Firebird e Interbase 1 13-06-2003 10:04:52


La franja horaria es GMT +2. Ahora son las 16:23:17.


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