FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
¿Como pasar de VARCHAR a DATE?
Tengo que hacer una consulta para pasar datos de una tabla antigua a otra nueva, y el problema es que en la antigua el campo fecha esta almacenado en un VARCHAR y en la actual esta en un DATE. Como puedo resolverlo.
Gracias. |
#2
|
||||
|
||||
Hola.
¿ Has probado con CAST ? cast(CAMPO as datetime) El problema es que imagino que solo hara la transformación si está en un formato reconocible por el motor de Firebird, es decir : mm/dd/yyyy Saludos
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#3
|
||||
|
||||
El problema es que el formato es diferente
Esta asi yymmdd, por ejemplo en lugar de poner 25/02/2004 --> 040225
Alguna idea de hacerlo mediante SQL, utilizo interbase 6. |
#4
|
||||
|
||||
Si tenes instalada alguna udf que te incluya la función substr o alguna equivalene podrias hacer algo como:
cast(substr(fecha, 3, 2)||'/'||substr(fecha, 6, 2)||'/20'||substr(fecha, 1, 2) as Date) he asumido, en este caso, que todas las fechas seran superiores al 1/1/2000. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
||||
|
||||
Una curiosidad
¿Y porque no usa el StrToDate o StrToDateTime? y una vez pasado a TDateTime lo inserta en el campo.
Yo la funcion Cast() no la entiendo si me despejais mis dudas os lo agradeceria |
#6
|
||||
|
||||
Hola.
Cita:
CAST es la función SQL estándar para cambiar de tipo un valor. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#7
|
||||
|
||||
Problema con SUBSTRING
He puesto el siguiente codigo en SQL y me da ese error. Cual es el problema, porque dice que no esta la funcion SUBSTRING, pero me la coje como valida en la sintaxis y ademas esta en la ayuda.
Código:
/************************ERROR************************************************** The next statement causes the following error: An error was found in the application program input parameters for the SQL statement. SQL error code = -804. Function unknown. SUBSTRING. SQL warning code = 301. DATE data type is now called TIMESTAMP. *******************************************************************************/ insert into movim_o2 (fecha2) select cast(substring(fecha, 5, 2)||'/'||substring(fecha, 3,2)||'/20'||substring(fecha, 1, 2) as date) from movim_o2; |
#8
|
||||
|
||||
Hola.
Tienes un aviso y un error. El aviso te indica que en lugar de indicar el tipo date utilizes el tipo timestamp (a continuación del as del cast). El error te indica que no reconoce la función substring. Como ya comentó jachguate, esta función no viene integrada en Interbase 6, por lo que la tienes que añadir mediante una udf. Revisa las udf's que vienen con Interbase 6 (ibudf.dll) para ver si tienen disponible esa función. En caso contrario tendrás que bajarte una libreria que si la incorpore. http://www.cvalde.net/misc/packages_and_utilities.htm Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
|
|
|