PDA

Ver la Versión Completa : Cambio tipo de datos


Rockin
26-11-2007, 20:25:36
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.

Chris
26-11-2007, 20:27:24
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.

maeyanes
26-11-2007, 20:30:29
Y es, a mi punto de vista, la mejor solución...


Saludos...

Rockin
26-11-2007, 20:48:47
Si es lo que habia pensado, pero como es la manera mas rapida de copiar los registros de un campo a otro, mediante UPDATE?

maeyanes
26-11-2007, 20:58:53
Así es...

Puedes hacer algo como:


update tabla set campofechadate = cast(campofechachar as date)


Saludos...

Rockin
26-11-2007, 21:45:54
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?

Al González
26-11-2007, 22:31:26
¡Hola a todos!

Creo que el siguiente ejemplo puede darte una idea:

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. :)

Rockin
27-11-2007, 15:08:38
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

Shikanda
18-12-2007, 18:36:45
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)??