Cuando escribes un SELECT que te devuelve una fecha el formato en el cual aparecen el día, el mes y el año ya están prefijados.

Por ejemplo, si usamos el programa ISQL:

FECHA1

Captura 1. Si haces clic en la imagen la verás más grande

Vemos que el formato es AAAA-MM-DD (año, mes, día, separados por guiones)

En cambio, si usamos el programa EMS SQL Manager:

FECHA2

Captura 2. Si haces clic en la imagen la verás más grande

Vemos que el formato es DD/MM/AAAA (día, mes, año, separados por barras)

¿Cómo podríamos hacer para que siempre las fechas se muestren con el formato que deseamos?

Bien, no hay una forma directa (o al menos el autor de este blog no la conoce) pero sí hay un pequeño truco que podemos utilizar y es el siguiente: extraer de la fecha el día, el mes, y el año, y luego mostrarlos como lo deseamos.

SELECT
   SUBSTRING(100 + EXTRACT(DAY FROM GAR_FECNAC) FROM 2 FOR 2) || '/' ||
   SUBSTRING(100 + EXTRACT(MONTH FROM GAR_FECNAC) FROM 2 FOR 2) || '/' ||
   EXTRACT(YEAR FROM GAR_FECNAC)
FROM
 GARANTES

La función EXTRACT() nos permite obtener el día, el mes, o el año de una fecha. Al sumarle 100 obtenemos un número de tres dígitos. Luego, con la función SUBSTRING() obtenemos los dos últimos dígitos, que son los que utilizamos. Por ejemplo, si el mes es junio:

EXTRACT(MONTH FROM GAR_FECNAC) nos dará 6

Al sumarle 100 obtendremos 106

Al obtener dos caracteres, contando desde el segundo, tendremos 06

Que es justamente lo que queríamos: el número del mes con un cero adelante si el número del mes está entre 1 y 9

Para separar el día, el mes, y el año podemos usar cualquier caracter que se nos ocurra, no solamente una barra. Si queremos podemos usar puntos, guiones, asteriscos, etc. O sea, podríamos obtener cualesquiera de las siguientes fechas:

01/06/1960, 06/01/1960, 01.06.1960, 06.01.1960, 1960.06.01, 1960-06-01, 01-06-1960, 01*06*1960, etc.

Desde luego que si lo prefieres, en lugar de usar la función SUBSTRING(MiVariable FROM 2 FOR 2) podrías usar la función RIGHT(MiVariable, 2). Es cuestión de gustos.

Artículos relacionados:

El índice del blog Firebird21

El foro del blog Firebird21

Anuncios