Imprimir      Abrir versión PDF de ayuda en línea


Tema anterior

Tema siguiente

Funciones de fecha/hora de agenda

Las funciones de fecha/hora de calendario manipulan datos en tipos de datos de fecha, hora y fecha/hora. (El tipo de dato fecha/hora es una combinación de fecha y hora.)

Todas las funciones de fecha son compatibles con ISO 8601. En concreto, esto afecta a las funciones como Week_Of_Year y Week_Of_Quarter donde la primera semana del año es la primera semana completa que incluye un jueves. Para obtener más información sobre el cálculo de las funciones de fecha, consulte el estándar ISO 8601.

Current_Date

Devuelve la fecha actual. La fecha la determina el sistema en el que se está ejecutando Oracle CRM On Demand Answers. El valor no contiene un componente de hora.

Sintaxis:

CURRENT_DATE

Current_Time

Devuelve la hora actual. La hora la determina el sistema en el que se está ejecutando Oracle CRM On Demand Answers. El valor no contiene un componente de fecha.

Nota: con esta función se obtiene la hora actual en el momento de ejecutar el informe. El uso de esta función con un área temática de análisis impide que el informe se almacene en la memoria caché, lo que reduce el rendimiento.

Sintaxis:

CURRENT_TIME (n)

donde:

n

Cualquier entero que representa el número de dígitos de precisión con lo que se va a mostrar la fracción de segundos. El argumento es opcional; la función devuelve la precisión predeterminada cuando no se especifica ningún argumento.

Current_TimeStamp

Devuelve la fecha/hora actual. La hora se determina en el sistema donde se ejecuta Oracle CRM On Demand Answers.

Nota: con esta función se obtiene la hora actual en el momento de ejecutar el informe. El uso de esta función con un área temática de análisis impide que el informe se almacene en la memoria caché, lo que reduce el rendimiento.

Sintaxis:

CURRENT_TIMESTAMP (n)

donde:

n

Cualquier entero que representa el número de dígitos de precisión con lo que se va a mostrar la fracción de segundos. El argumento es opcional; la función devuelve la precisión predeterminada cuando no se especifica ningún argumento.

Day_Of_Quarter

Devuelve un número (entre 1 y 92) que se corresponde al día del trimestre de la fecha especificada.

Sintaxis:

DAY_OF_QUARTER (expresión_fecha)

donde:

date_expression

Cualquier expresión que se evalúa como una fecha.

DayName

Devuelve el nombre del día de la semana (en inglés) para una fecha especificada.

Sintaxis:

DAYNAME (date_expression)

donde:

date_expression

Cualquier expresión que se evalúa como una fecha.

DayOfMonth

Devuelve el número que se corresponde al día del mes para una fecha especificada.

Sintaxis:

DAYOFMONTH (date_expression)

donde:

date_expression

Cualquier expresión que se evalúa como una fecha.

DayOfWeek

Devuelve un número entre 1 y 7 que se corresponde con el día de la semana de una fecha especificada. El número 1 corresponde al domingo y el número 7 corresponde al sábado.

Sintaxis:

DAYOFWEEK (date_expression)

donde:

date_expression

Cualquier expresión que se evalúa como una fecha.

DayOfYear

Devuelve el número (entre 1 y 366) que se corresponde con el día del año de una fecha especificada.

Sintaxis:

DAYOFYEAR (date_expression)

donde:

date_expression

Cualquier expresión que se evalúa como una fecha.

Hour

Devuelve un número (entre 0 y 23) que se corresponde con la hora de un período de tiempo especificado. Por ejemplo, 0 se corresponde con 12 a.m. y 23 se corresponde con 11 p.m.

Sintaxis:

HOUR (time_expression)

donde:

time_expression

Cualquier expresión que se evalúa como una hora.

Minute

Devuelve un número (entre 0 y 59) que se corresponde con los minutos de un período de tiempo especificado.

Sintaxis:

MINUTE (time_expression)

donde:

time_expression

Cualquier expresión que se evalúa como una hora.

Month

Devuelve el número (entre 1 y 12) que se corresponde con el mes de una fecha especificada.

Sintaxis:

MONTH (date_expression)

donde:

date_expression

Cualquier expresión que se evalúa como una fecha.

Month_Of_Quarter

Devuelve el número (entre 1 y 3) que se corresponde con el mes del trimestre de una fecha especificada.

Sintaxis:

MONTH_OF_QUARTER (expresión_fecha)

donde:

date_expression

Cualquier expresión que se evalúa como una fecha.

MonthName

Devuelve el nombre del mes (en inglés) de una fecha especificada.

Sintaxis:

MONTHNAME (date_expression)

donde:

date_expression

Cualquier expresión que se evalúa como una fecha.

Now

Devuelve la fecha/hora actual. La función NOW es equivalente a la función CURRENT_TIMESTAMP.

Nota: con esta función se obtiene la hora actual en el momento de ejecutar el informe. El uso de esta función con un área temática de análisis impide que el informe se almacene en la memoria caché, lo que reduce el rendimiento.

Sintaxis:

NOW ()

Quarter_Of_Year

Devuelve un número (entre 1 y 4) que se corresponde al trimestre del año de la fecha especificada.

Sintaxis:

QUARTER_OF_YEAR (expresión_fecha)

donde:

date_expression

Cualquier expresión que se evalúa como una fecha.

Second

Devuelve el número (entre 0 y 59) que se corresponde con los segundos de un período de tiempo especificado.

Sintaxis:

SECOND (time_expression)

donde:

time_expression

Cualquier expresión que se evalúa como una hora.

TimestampAdd

La función TimestampAdd añade un número especificado de intervalos a una fecha/hora especificada. Se devuelve una única fecha/hora.

Sintaxis:

TimestampAdd (intervalo, expresión_entero, expresión_fecha/hora)

donde:

interval

Intervalo especificado. Los valores válidos son los siguientes:

SQL_TSI_SECOND

SQL_TSI_MINUTE

SQL_TSI_HOUR

SQL_TSI_DAY

SQL_TSI_WEEK

SQL_TSI_MONTH

SQL_TSI_QUARTER

SQL_TSI_YEAR

integer_expression

Cualquier expresión que se evalúa como un entero. Es el número de intervalos que hay que agregar.

timestamp_expression

El valor de fecha/hora usado como la base del cálculo.

Una expresión entera nula o una expresión de fecha/hora nula pasada a esta función dará como resultado un valor de devolución nulo.

En la situación más sencilla, esta función simplemente añade el valor entero especificado (expresión_entero) al componente apropiado del valor de fecha/hora, basado en el intervalo. Añadir una semana se traduce como añadir siete días y añadir un trimestre se traduce como añadir tres meses. Un valor entero negativo da como resultado una resta (retroceder en el tiempo).

Un excedente del componente especificado (como más de 60 segundos, 24 horas, doce meses, etc.) tiene que sumar una cantidad apropiada al componente siguiente. Por ejemplo, cuando se añade al componente día un valor de fecha/hora, esta función lo considera un excedente y tiene en cuenta el número de días de un mes determinado (incluyendo los años bisiestos cuando febrero tiene 29 días).

Cuando se añade al componente mes un valor de fecha/hora, esta función comprueba que la fecha/hora resultante tiene el suficiente número de días para el componente día. Por ejemplo, si se añade un mes a 2000-05-31 no da como resultado 2000-06-31 porque junio no tiene 31 días. Esta función reduce el componente día al último día del mes, 2000-06-30 en este ejemplo.

Un problema similar surge cuando se añade al componente año de un valor de fecha/hora teniendo el componente mes de febrero y el componente día de 29 (es decir, el último día de febrero de un año bisiesto). Si el valor de fecha/hora resultante no cae en un año bisiesto, la función reduce el componente día a 28.

A continuación se muestran ejemplos de la función TimestampAdd:

El ejemplo de código siguiente pide el valor de fecha/hora resultante cuando se agregan tres días a 2000-02-27 14:30:00. Como febrero de 2000 es un año bisiesto, devuelve un único valor de fecha/hora de 2000-03-01 14:30:00.

TimestampAdd(SQL_TSI_DAY, 3, TIMESTAMP‘2000-02-27 14:30:00’)

El ejemplo de código siguiente pide el valor de fecha/hora resultante cuando se agregan 7 meses a 1999-07-31 0:0:0. Devuelve un único valor de fecha/hora de 2000-02-29 00:00:00. Observe la reducción del componente día a 29 debido a que febrero es un mes más corto.

TimestampAdd(SQL_TSI_MONTH, 7, TIMESTAMP‘1999-07-31 00:00:00’)

El ejemplo de código siguiente pide el valor de fecha/hora resultante cuando se agregan 25 minutos a 2000-07-31 23:35:00. Devuelve un único valor de fecha/hora de 2000-08-01 00:00:00. Observe la propagación del excedente a través del componente mes.

TimestampAdd(SQL_TSI_MINUTE, 25, TIMESTAMP‘2000-07-31 23:35:00’)

TimeStampDiff

La función TimestampDiff devuelve el número total de intervalos especificados entre dos valores de fecha/hora.

Sintaxis:

TimestampDiff (intervalo, expresión1_fecha/hora, expresión2_fecha/hora)

donde:

interval

Intervalo especificado. Los valores válidos son los siguientes:

SQL_TSI_SECOND

SQL_TSI_MINUTE

SQL_TSI_HOUR

SQL_TSI_DAY

SQL_TSI_WEEK

SQL_TSI_MONTH

SQL_TSI_QUARTER

SQL_TSI_YEAR

timestamp_expression1

El valor de fecha/hora que se va a restar del segundo valor de fecha/hora.

timestamp_expression2

El segundo valor de fecha/hora. expresión1_fecha/hora se resta de este valor de fecha/hora para determinar la diferencia.

Un parámetro de expresión de fecha/hora nula pasado a esta función dará como resultado un valor de devolución nulo.

Esta función determina primero el componente de fecha/hora que se corresponde con el parámetro de intervalo especificado. Por ejemplo, SQL_TSI_DAY se corresponde al componente día y SQL_TSI_MONTH se corresponde al componente mes.

La función busca entonces los componentes de orden superior de ambos valores de fecha/hora para calcular el número total de intervalos para cada valor de fecha/hora. Por ejemplo, si el intervalo especificado se corresponde con el componente mes, la función calcula el número total de meses para cada valor de fecha/hora añadiendo el componente mes y doce veces el componente año.

Finalmente, la función resta el número total del primer valor de fecha/hora del número total del segundo valor de fecha/hora de intervalos.

Al calcular la diferencia en días, la función trunca los valores de hora de las dos expresiones de fecha/hora y, a continuación, resta los valores de fecha.

Al calcular la diferencia en semanas, la función calcula la diferencia en días y la divide por siete antes de redondearla.

Al calcular la diferencia en trimestres, la función calcula la diferencia en meses y la divide por tres antes de redondearla.

Al calcular la diferencia en años, la función calcula la diferencia en meses y la divide entre doce antes de redondearla.

Ejemplo de la función TimestampDiff y resultados

El ejemplo de código siguiente pide una diferencia en días entre valores de fecha/hora 1998-07-31 23:35:00 y 2000-04-01 14:24:00. Devuelve un valor de 610. Observe que el año bisiesto de 2000 da lugar a un día adicional.

TimestampDIFF(SQL_TSI_DAY, TIMESTAMP‘1998-07-31 23:35:00’, TIMESTAMP‘2000-04-01 14:24:00’)

Week_Of_Quarter

Devuelve un número (entre 1 y 13) que se corresponde con el día de la semana del trimestre de la fecha especificada.

Sintaxis:

WEEK_OF_QUARTER (expresión_fecha)

donde:

date_expression

Cualquier expresión que se evalúa como una fecha.

Week_Of_Year

Devuelve un número (entre 1 y 53) que se corresponde con el día de la semana del año de una fecha especificada.

Sintaxis:

WEEK_OF_YEAR (expresión_fecha)

donde:

date_expression

Cualquier expresión que se evalúa como una fecha.

Año

Devuelve el año de la fecha especificada.

Sintaxis:

YEAR (date_expression)

donde:

date_expression

Cualquier expresión que se evalúa como una fecha.

Ejemplo:

YEAR (CURRENT_DATE)


Publicado en octubre 2016 Copyright © 2005, 2016, Oracle. Todos los derechos reservados. Legal Notices.