PDA

Ver la Versión Completa : Extaer fecha y desglosar de un campo


jafera
26-06-2013, 18:29:20
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: 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

defcon1_es
26-06-2013, 18:49:05
Hola.

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


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);

jafera
26-06-2013, 19:10:13
Ha sido una respuesta perfecta, pero con una pequeña modificacion ya que el formato es DATE

Codigo modificado:


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

defcon1_es
26-06-2013, 19:23:18
Ha sido una respuesta perfecta,

:D:D:D Me alegro que te haya servido.


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.

jafera
26-06-2013, 19:25:47
Gracias, uso ISO8859_1 y dialecto 3, calro.

El dialecto 1 tiene alguna ventaja respecto al 3?

Saludos

Josep

Casimiro Notevi
26-06-2013, 20:01:08
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?

El dialecto 1 tiene alguna ventaja respecto al 3?
Ninguna, al contrario, el dialecto 3 es más completo.

jafera
26-06-2013, 22:41:17
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)

defcon1_es
27-06-2013, 09:48:57
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/documents/design/doc_171

jafera
03-07-2013, 17:40:58
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