![]() |
|
Funciones de fecha/hora de agendaLas 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_DateDevuelve 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_TimeDevuelve 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:
Current_TimeStampDevuelve 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:
Day_Of_QuarterDevuelve 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:
DayNameDevuelve el nombre del día de la semana (en inglés) para una fecha especificada. Sintaxis: DAYNAME (date_expression) donde:
DayOfMonthDevuelve el número que se corresponde al día del mes para una fecha especificada. Sintaxis: DAYOFMONTH (date_expression) donde:
DayOfWeekDevuelve 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:
DayOfYearDevuelve 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:
HourDevuelve 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:
MinuteDevuelve 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:
MonthDevuelve el número (entre 1 y 12) que se corresponde con el mes de una fecha especificada. Sintaxis: MONTH (date_expression) donde:
Month_Of_QuarterDevuelve 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:
MonthNameDevuelve el nombre del mes (en inglés) de una fecha especificada. Sintaxis: MONTHNAME (date_expression) donde:
NowDevuelve 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_YearDevuelve 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:
SecondDevuelve 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:
TimestampAddLa 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:
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’) TimeStampDiffLa 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:
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 resultadosEl 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_QuarterDevuelve 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:
Week_Of_YearDevuelve 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:
AñoDevuelve el año de la fecha especificada. Sintaxis: YEAR (date_expression) donde:
Ejemplo: YEAR (CURRENT_DATE) |
Publicado en octubre 2016 | Copyright © 2005, 2016, Oracle. Todos los derechos reservados. Legal Notices. |