Programación para novatos.

domingo, 27 de julio de 2008

Manejando Fechas con Firebird e Interbase 6+ (Parte I)

Uno de los dolores de cabeza para los que empiezan con Firebird e Interbase, es el manejo de fechas, a continuación trataré de explicar las funciones básicas. Básicamente todas las funciones están construidas bajo la sentencia EXTRACT() de SQL. Hay cinco datos que se pueden extraer desde una fecha, que son:

  • WEEKDAY := Día de la Semana (devuelve un valor Integer).
  • DAY := Que devuelve el día correspondiente a una fecha (devuelve un valor Integer).
  • MONTH := Que devuelve el mes correspondiente a una fecha (devuelve un valor Integer).
  • YEAR := Que devuelve el año correspondiente a una fecha (devuelve un valor Integer).
  • YEARDAY := Que devuelve el no. de día correspondiente al año (devuelve un valor Integer).
Veamos la función WEEKDAY, recordar que para usar las funciones de fechas se debe utilizar la sentencia EXTRACT(), esa función tiene como objetivo extraer el día de la semana (Domingo, Sábado, Lunes, Etc.) en un valor integer:

SELECT EXTRACT(WEEKDAY FROM FECHA) FROM EGRESOS

el resultado de esa sentencia debería resultar así: 0 = Domingo, 1 = Lunes, 2 = Martes... 6 = Sábado en formato Americano, utilizando el formato ISO 8601 Standard debería ser así: 1 = Lunes, 2 = Martes... 7 = Domingo, veamos otro ejemplo más detallado:

SELECT
FECHA,
EXTRACT( WEEKDAY FROM FECHA) AS AMERICAN,
EXTRACT( WEEKDAY FROM FECHA - 1) + 1 AS ISO8601
FROM EGRESOS;

FECHA

AMERICAN

ISO8601

29-NOV-2001

4

4

30-NOV-2001

5

5

1-DEC-2001

6

6

2-DEC-2001

0

7

3-DEC-2001

1

1

4-DEC-2001

2

2

5-DEC-2001

3

3


Eso es todo por el momento, más adelante publico la segunda parte de este pequeño tutorial.

Saludos.

2 comentarios:

Anónimo dijo...

cojonudo

Anónimo dijo...

Lo que se esta haciendo, es una simulacion.
El concepto, esta bien,... pero no sirve el ejemplo, para solventar el problema

saludos

Text Widget

Copyright © Enecumene Blog | Powered by Blogger
Design by Saeed Salam | Blogger Theme by NewBloggerThemes.com | Distributed By Gooyaabi Templates