Sistema de encomiendas
SQL> SELECT sysdate + 7 FROM dual;
SYSDATE+
-------
25/09/06
SQL> SELECTsysdate - 30 FROM dual;
SYSDATE-
--------
19/08/06
SQL> SELECT to_char(sysdate - 14, 'MM/DD/YYYY HH:MI AM') FROM dual;
TO_CHAR(SYSDATE-14,
-------------------
09/04/2006 11:41 AM
En el primerejemplo, vemos que la consulta retorna la fecha siete días apartir de hoy. La segunda retorna la fecha de hace 30 días. En la tercera, se ha usado la función de conversión to_char, para ver las horas yminutos. Esto nos muestra que mientras la fecha, ha cambiado, el tiempo no cambia.
Los ejemplos primero y tercero ademas muestran como el adicionar días, puede ser útil para computar semanas. Si ud deseasimplificar el computo de semanas, podías usar querys de este tipo:
SQL> SELECT sysdate + (7 * 3) FROM dual;
SYSDATE+
DECODE(, , [, ..., , ], )
Esta función evalúa una expresión "", sise cumple la primera condición "" devuelve el valor1 "", en caso contrario evalúa la siguiente condición y así hasta que una de las condiciones se cumpla. Si no se cumple ninguna condición se devuelveel valor por defecto.
Es muy común escribir la función DECODE identada como si se tratase de un bloque IF.
SELECT DECODE (co_pais, /* Expresion a evaluar */ 'ESP', 'ESPAÑA',/* Si co_pais = 'ESP' ==> 'ESPAÑA' */ 'MEX', 'MEXICO', /* Si co_pais = 'MEX' ==> 'MEXICO' */ 'PAIS '||co_pais)/* ELSE ==> concatena */ FROM PAISES;
TO_DATEConvierte una expresión al tipo fecha. El parámetro opcional formato indica el formato de entrada de la expresión no el de salida.
TO_DATE(, [])
En este ejemplo convertimos la expresion'01/12/2006' de tipo CHAR a una fecha (tipo DATE). Con el parámetro formato le indicamos que la fecha está escrita como día-mes-año para que devuelve el uno de diciembre y no el doce de enero.
SELECT...
Regístrate para leer el documento completo.