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-06-2013
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 17
jafera Va por buen camino
Extaer fecha y desglosar de un campo

Buenas de nuevo,

Otra vez dando guerra con las conversiones de tipos y siguiendo con el programita que me he propuesto sacar adelante, necesito unos consejos para saber si se puede y como, el sacar la fecha de nacimiento de una cadena que tiene el siguiente formato:

ESP19630225

Esto es un codigo UCI (de los ciclistas), y este es el mio personal, yo lo que necesito es primero extraer las tres letras de la izquierda lo cual ya tengo solucionado con:
Código SQL [-]
UPDATE CTR0003 SET NACIO = (SUBSTRING(CODIUCI FROM 1 FOR 3));

De esta manera actualizo el campo nacionalidad con el valor correspondiente.

Lo siguiente es poder convertir 19630225 en un campo fecha con formato 25/02/1963, todo desde una sql que me actualice el campo fecha nacimiento de mi tabla.

Algún consejo?

Gracias a todos

Josep
Responder Con Cita
  #2  
Antiguo 26-06-2013
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Hola.

Siguiendo la misma línea que usas para extraer la nacionalidad:

Código SQL [-]
UPDATE CTR0003 SET 
  NACIO = (SUBSTRING(CODIUCI FROM 1 FOR 3)),
  FECHA_NACIMIENTO = CAST( (SUBSTRING(USERTEST FROM 10 FOR 2)||'-'||SUBSTRING(USERTEST FROM 8 FOR 2)||'-'||SUBSTRING(USERTEST FROM 4 FOR 4)) as TIMESTAMP);
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #3  
Antiguo 26-06-2013
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 17
jafera Va por buen camino
Ha sido una respuesta perfecta, pero con una pequeña modificacion ya que el formato es DATE

Codigo modificado:

Código SQL [-]
 
UPDATE CTR0003 SET
  NACIO = (SUBSTRING(CODIUCI FROM 1 FOR 3)),
  DATA_NAIX = CAST( (SUBSTRING(CODIUCI FROM 4 FOR 4)||'/'||SUBSTRING(CODIUCI FROM 8 FOR 2)||'/'||SUBSTRING(CODIUCI FROM 10 FOR 2)) as DATE);

año/mes/dia

Gracias y saludos

Josep
Responder Con Cita
  #4  
Antiguo 26-06-2013
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Talking

Cita:
Empezado por jafera Ver Mensaje
Ha sido una respuesta perfecta,
Me alegro que te haya servido.

Cita:
Empezado por jafera Ver Mensaje
pero con una pequeña modificación ya que el formato es DATE
Ok, eso es porque usas Dialecto 3 y yo hice la prueba en una BD con dialecto 1.
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #5  
Antiguo 26-06-2013
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 17
jafera Va por buen camino
Gracias, uso ISO8859_1 y dialecto 3, calro.

El dialecto 1 tiene alguna ventaja respecto al 3?

Saludos

Josep
Responder Con Cita
  #6  
Antiguo 26-06-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por jafera Ver Mensaje
ESP19630225
Esto es un codigo UCI (de los ciclistas), y este es el mio personal
Y si hay otro ciclista que haya nacido ese mismo día, ¿qué hacen?

Cita:
Empezado por jafera Ver Mensaje
El dialecto 1 tiene alguna ventaja respecto al 3?
Ninguna, al contrario, el dialecto 3 es más completo.
Responder Con Cita
  #7  
Antiguo 26-06-2013
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 17
jafera Va por buen camino
Hola a todos.

Antonio tienes razón el código se puede duplicar ya que es fácil que dos personas sean del mismo día, pero luego se complementa con el numero de licencia que en España es el DNI.

Despues haré una prueba y veré cuantos nacidos el 25/2/63 tienen licencia. (curiosidad animal)

Saludos

Josep

Nota:
Realizada la prueba somos 3 españoles nacidos el 25/2/63 con licencia, dos cicloturistas y un comisario internacional (yo)

Última edición por jafera fecha: 26-06-2013 a las 22:52:16. Razón: Prueba realizada
Responder Con Cita
  #8  
Antiguo 27-06-2013
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Cita:
Empezado por jafera Ver Mensaje
El dialecto 1 tiene alguna ventaja respecto al 3?
Para ver las diferencias entre los dialectos 1 y 3, revisa estos link:

http://www.firebirdsql.org/manual/isql-dialects.html

http://www.ibphoenix.com/resources/d...design/doc_171
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #9  
Antiguo 03-07-2013
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 17
jafera Va por buen camino
Gracias y perdoand el retraso en responder.

Efectrivamente me quedo con dialecto 3.

El cambio funcionó a la perfección y además usé la misma estructura de la consulta para otra actualización similar.

Saludos

Josep
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
Agrupar por fecha, teniendo en el campo fecha y hora El_Raso Firebird e Interbase 3 18-03-2010 22:05:19
Extraccion fecha de un campo fecha y hora matti Firebird e Interbase 3 26-04-2007 19:48:11
Comparar una fecha de n campo date contra fecha actual amadis SQL 2 27-06-2005 21:37:41
desglosar srangel JAVA 1 29-09-2004 18:09:38
Desglosar fecha Un abrazo OOP 3 06-06-2003 11:53:23


La franja horaria es GMT +2. Ahora son las 01:41:12.


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