Funciones de fecha y hora

Las funciones de fecha y hora manipulan los datos según DATE y DATETIME.

Función Ejemplo Descripción Sintaxis
CONVERT_TZ CONVERT_TZ(Order Date, 'UTC', 'America/Denver') Convierte un valor de fecha y hora expr de la zona horaria especificada por Old time zone a la zona horaria especificada por New time zone y devuelve el valor resultante. CONVERT_TZ(expr, 'Old time zone', 'New time zone')

CURRENT_Date

CURRENT_DATE

Devuelve la fecha actual.

La fecha se determina en el sistema donde se ejecuta Oracle BI.

CURRENT_DATE

CURRENT_TIME

CURRENT_TIME(3)

Devuelve la hora actual al número especificado de dígitos de precisión, por ejemplo: HH:MM:SS.SSS

Si no se especifica ningún argumento, la función devuelve la precisión por defecto.

CURRENT_TIME(expr)

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP(3)

Devuelve la fecha/registro de hora actual al número especificado de dígitos de precisión.

CURRENT_TIMESTAMP(expr)

DAYNAME

DAYNAME(Order_Date)

Devuelve el nombre del día de la semana de una expresión de fecha especificada.

DAYNAME(expr)

DAYOFMONTH

DAYOFMONTH(Order_Date)

Devuelve el número correspondiente al día del mes de una expresión de fecha especificada.

DAYOFMONTH(expr)

DAYOFWEEK

DAYOFWEEK(Order_Date)

Devuelve un número entre 1 y 7 correspondiente al día de la semana de una expresión de fecha especificada. Por ejemplo, 1 siempre corresponde al domingo, 2 al lunes, y así sucesivamente hasta el sábado, que corresponde al número 7.

DAYOFWEEK(expr)

DAYOFYEAR

DAYOFYEAR(Order_Date)

Devuelve el número (entre 1 y 366) correspondiente al día del año de una expresión de fecha especificada.

DAYOFYEAR(expr)

DAY_OF_QUARTER

DAY_OF_QUARTER(Order_Date)

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

DAY_OF_QUARTER(expr)

HOUR

HOUR(Order_Time)

Devuelve un número (entre 0 y 23) correspondiente a la hora de una expresión de hora especificada. Por ejemplo, 0 corresponde a las 00:00 y 23 corresponde a las 23.00.

HOUR(expr)

MINUTE

MINUTE(Order_Time)

Devuelve un número (entre 0 y 59) correspondiente al minuto de una expresión de tiempo especificada.

MINUTE(expr)

MONTH

MONTH(Order_Time)

Devuelve el número (entre 1 y 12) correspondiente al mes de una expresión de fecha especificada.

MONTH(expr)

MONTHNAME

MONTHNAME(Order_Time)

Devuelve el nombre del mes de una expresión de fecha especificada.

MONTHNAME(expr)

MONTH_OF_QUARTER

MONTH_OF_QUARTER(Order_Date)

Devuelve el número (entre 1 y 3) correspondiente al mes del trimestre de una expresión de fecha especificada.

MONTH_OF_QUARTER(expr)

NOW

NOW()

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

NOW()

QUARTER_OF_YEAR

QUARTER_OF_YEAR(Order_Date)

Devuelve el número (entre 1 y 4) correspondiente al trimestre del año de una expresión de fecha especificada.

QUARTER_OF_YEAR(expr)

SECOND

SECOND(Order_Time)

Devuelve el número (entre 0 y 59) correspondiente a los segundos de una expresión de tiempo especificada.

SECOND(expr)

TIMESTAMPADD

TIMESTAMPADD(SQL_TSI_MONTH, 12,Time."Order Date")

Agrega el número especificado de intervalos a un registro de hora y devuelve un solo registro de hora.

Las opciones de intervalo son: SQL_TSI_SECOND, SQL_TSI_MINUTE, SQL_TSI_HOUR, SQL_TSI_DAY, SQL_TSI_WEEK, SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_YEAR

TIMESTAMPADD(interval, expr, timestamp)

TIMESTAMPDIFF

TIMESTAMPDIFF(SQL_TSI_MONTH, Time."Order Date",CURRENT_DATE)

Devuelve el número total de intervalos especificados entre dos indicaciones de fecha/hora.

Utilice los mismos intervalos que TIMESTAMPADD.

TIMESTAMPDIFF(interval, expr, timestamp2)

WEEK_OF_QUARTER

WEEK_OF_QUARTER(Order_Date)

Devuelve un número (entre 1 y 13) que corresponde a la semana del trimestre de la expresión de fecha especificada.

WEEK_OF_QUARTER(expr)

WEEK_OF_YEAR

WEEK_OF_YEAR(Order_Date)

Devuelve un número (entre 1 y 53) que corresponde a la semana del año de la expresión de fecha especificada.

WEEK_OF_YEAR(expr)

YEAR

YEAR(Order_Date)

Devuelve el año de la expresión de fecha especificada.

YEAR(expr)

Consejos sobre el uso de funciones de fecha

A continuación se incluyen algunos consejos sobre cómo obtener los mejores resultados al utilizar funciones de fecha en los libros de trabajo para calcular períodos fiscales, convertir cadenas a fechas, mostrar una fecha y hora en una zona horaria específica y calcular las diferencias a lo largo del tiempo.

Calcule el año, el trimestre y el mes fiscales:

Las áreas temáticas normalmente tienen una dimensión de tiempo para que pueda utilizar períodos previamente configurados como el trimestre fiscal, el mes fiscal y la semana fiscal. Si solo tiene un campo de fecha, puede calcular estos períodos por sí mismo utilizando las funciones de fecha.

En este ejemplo se calcula el trimestre fiscal:

'FY'||cast(YEAR(TIMESTAMPADD(SQL_TSI_MONTH, 7,<date field>)) as char)||'Q'||cast(QUARTER(TIMESTAMPADD(SQL_TSI_MONTH, 7,<same date field>)) as char)

En este ejemplo se calcula el año y el mes fiscales:

'FY'||cast(YEAR(TIMESTAMPADD(SQL_TSI_MONTH, 7,<date field>)) as char)||cast(MONTHNAME(<same date field>) as char)

Notas:

  • || concatena valores.
  • cast (xxx(date) as char) extrae una porción de un campo de fecha.
  • TIMESTAMPADD agrega (o resta) períodos de una fecha. En este ejemplo se utiliza el valor de parámetro SQL_TSI_MONTH para agregar meses.

El cálculo anterior funciona bien en las tablas, pero cuando se utiliza en filtros, el espacio entre los valores devueltos podría tener un aspecto raro. En este caso, utilice un limpiador, pero con un cálculo más complejo basado en estos ejemplos:

'FY'||evaluate ('to_char(%1,%2)'as char,(EVALUATE('add_months(%1,%2)' as date,<date field>,7)),'YY')||'-Q'||evaluate ('to_char(%1,%2)'as char,(EVALUATE('add_months(%1,%2)' as date,<same date field>,7)),'Q')
'FY'||evaluate ('to_char(%1,%2)'as char,(EVALUATE('add_months(%1,%2)' as date,<date field>,7)),'YY')||'-'||evaluate ('to_char(%1,%2)'as char,<same date field>,'MON')

Convierta una cadena en una fecha:

Oracle Analytics elabora perfiles de los datos y proporciona recomendaciones de enriquecimiento para extraer y convertir datos. Si necesita convertir una cadena en una fecha, siga estos consejos:
  • En el diseñador del libro de trabajo, desplácese en el panel de datos hasta la columna que desea convertir, haga clic con el botón derecho y seleccione Convertir en fecha. Configure la fecha y, a continuación, haga clic en Agregar paso.

  • En el diseñador del libro de trabajo, desplácese en el panel de datos hasta la columna que desea convertir, haga clic con el botón derecho y seleccione Editar. Configure la fecha y, a continuación, haga clic en Agregar paso.

    En el cuadro de texto que contiene el nombre de la columna en azul, inserte To_DateTime( delante del nombre de columna. Después agregue el formato de fecha que desea utilizar después del nombre de columna, seguido de ) y, a continuación, haga clic en Agregar paso.
    A continuación se muestra la descripción de GUID-ADBD035B-A62A-4DED-8768-553365BAABFE-default.png
    .png

    Al utilizar la opción Editar para crear la función de conversión de fecha, también puede utilizar Allow_Variable_Digits para procesar valores de columna con números de uno o dos dígitos, y argumentos Null_On_Error para desechar las filas que no coincidan con el patrón necesario. Consulte también REPLACE y CAST para conocer formas alternativas de procesar datos que no coincidan con el patrón necesario.

    Como alternativa al uso de To_DateTime(), utilice CAST() para cambiar el tipo de datos de un valor. Por ejemplo, CAST(SalesDate AS DATE).

    Utilice también la opción Sustituir. En el diseñador del libro de trabajo, desplácese en el panel de datos hasta la columna que desea convertir, haga clic con el botón derecho y seleccione Sustituir. Configure el tipo de sustitución que desee y, a continuación, haga clic en Agregar paso.

Muestre un campo de fecha y hora en una zona horaria específica:

Utilice la función NEW_TIME en la base de datos junto con EVALUATE. Por ejemplo:

evaluate ('new_time(%1,%2,%3)' as char, "DV - Pipeline and Forecast"."Opportunity"."Last Updated Date",'GMT','AST')

Asegúrese de que el campo de fecha incluya el componente de tiempo.

Calcule la diferencia a lo largo del tiempo:

Para mostrar la diferencia en número y porcentaje entre ahora y ayer, cree cálculos basados en estos ejemplos:
  • Calcule una medida hasta ayer: filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Calcule la diferencia: Measure - filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Calcule el porcentaje de diferencia: 1-(filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))/Measure display as percentage

Notas:

  • Estos ejemplos utilizan SQL_TSI_DAY, pero puede utilizar como alternativa WEEK y MONTH semana a semana y mes a mes.
  • Estos ejemplos funcionan con un calendario normal y natural. Si necesita meses y trimestres fiscales, utilice las variables de repositorio en los cálculos en lugar de TIMESTAMPADD. También puede combinarlo con el consejo Calcule el año, el trimestre y el mes fiscales.
  • Algunas áreas temáticas incluyen medidas del tipo X anterior previamente calculadas, como PY (año anterior) y PQ (trimestre anterior), que puede utilizar para calcular las diferencias a lo largo del tiempo.
  • También puede utilizar las funciones TIME SERIES: AGO, PERIODROLLING y TODATE. Consulte Funciones de serie temporal.