Le funzioni di data e ora consentono di gestire i dati in base ai tipi DATE
e DATETIME
.
Funzione | Esempio | Descrizione | Sintassi |
---|---|---|---|
CURRENT_Date |
|
Restituisce la data corrente. La data è determinata dal sistema su cui è in esecuzione Oracle BI. |
|
CURRENT_TIME |
|
Restituisce l'ora corrente con il numero specificato di cifre di precisione, ad esempio: HH:MM:SS.SSS Se non è stato specificato alcun argomento, la funzione restituisce la precisione predefinita. |
|
CURRENT_TIMESTAMP |
|
Restituisce la data/indicatore orario corrente con il numero specificato di cifre di precisione. |
|
DAYNAME |
|
Restituisce il nome del giorno della settimana per un'espressione di data specificata. |
|
DAYOFMONTH |
|
Restituisce il numero corrispondente al giorno del mese per un'espressione di data specificata. |
|
DAYOFWEEK |
|
Restituisce un numero compreso tra 1 e 7 corrispondente al giorno della settimana per un'espressione di data specificata. Ad esempio, 1 corrisponde sempre a Domenica, 2 corrisponde a Lunedì e così via fino a Sabato che restituisce 7. |
|
DAYOFYEAR |
|
Restituisce un numero compreso tra 1 e 366 corrispondente al giorno dell'anno per un'espressione di data specificata. |
|
DAY_OF_QUARTER |
|
Restituisce un numero compreso tra 1 e 92 corrispondente al giorno del trimestre per l'espressione di data specificata. |
|
HOUR |
|
Restituisce un numero compreso tra 0 e 23 corrispondente all'ora per un'espressione di tempo specificata. Ad esempio, 0 corrisponde alle 12.00 e 23 corrisponde alle 23.00. |
|
MINUTE |
|
Restituisce un numero compreso tra 0 e 59 corrispondente al minuto per un'espressione di tempo specificata. |
|
MONTH |
|
Restituisce un numero compreso tra 1 e 12 corrispondente al mese per un'espressione di data specificata. |
|
MONTHNAME |
|
Restituisce il nome del mese per un'espressione di data specificata. |
|
MONTH_OF_QUARTER |
|
Restituisce un numero compreso tra 1 e 3 corrispondente al mese del trimestre per un'espressione di data specificata. |
|
NOW |
|
Restituisce l'indicatore orario corrente. La funzione |
|
QUARTER_OF_YEAR |
|
Restituisce un numero compreso tra 1 e 4 corrispondente al trimestre dell'anno per un'espressione di data specificata. |
|
SECOND |
|
Restituisce un numero compreso tra 0 e 59 corrispondente ai secondi per un'espressione di tempo specificata. |
|
TIMESTAMPADD |
|
Aggiunge un numero specificato di intervalli a un indicatore orario e restituisce un singolo indicatore orario. Sono disponibili le opzioni di intervallo seguenti: SQL_TSI_SECOND, SQL_TSI_MINUTE, SQL_TSI_HOUR, SQL_TSI_DAY, SQL_TSI_WEEK, SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_YEAR |
|
TIMESTAMPDIFF |
|
Restituisce il numero totale di intervalli specificati tra due indicatori orari. Utilizzare gli stessi intervalli di TIMESTAMPADD. |
|
WEEK_OF_QUARTER |
|
Restituisce un numero compreso tra 1 e 13 corrispondente alla settimana del trimestre per l'espressione di data specificata. |
|
WEEK_OF_YEAR |
|
Restituisce un numero compreso tra 1 e 53 corrispondente alla settimana dell'anno per l'espressione di data specificata. |
|
YEAR |
|
Restituisce l'anno per l'espressione di data specificata. |
|
Di seguito sono riportati alcuni suggerimenti su come ottenere i migliori risultati quando si utilizzano le funzioni di data nelle cartelle di lavoro per calcolare i periodi fiscali, convertire stringhe in date, visualizzare data e ora in un fuso orario specifico e calcolare le differenze nel tempo.
Calcolare anno, trimestre e mese fiscale:
In genere le aree argomenti prevedono una dimensione temporale, pertanto è possibile utilizzare i periodi preconfigurati come trimestri, mesi e settimane fiscali. Se si dispone di un solo campo per la data, è possibile calcolare personalmente questi periodi utilizzando le funzioni di data.
In questo esempio viene calcolato il trimestre fiscale:
'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)
In questo esempio vengono calcolati l'anno e il mese fiscali:
'FY'||cast(YEAR(TIMESTAMPADD(SQL_TSI_MONTH, 7,<date field>)) as char)||cast(MONTHNAME(<same date field>) as char)
Note:
||
valori concatenati.cast (xxx(date) as char)
estrae una porzione del campo della data.TIMESTAMPADD
aggiunge (o sottrae) periodi a una data. In questo esempio viene utilizzato il valore del parametro SQL_TSI_MONTH per aggiungere mesi.I calcoli sopra riportati funzionano bene nelle tabelle ma, quando vengono utilizzati nei filtri, lo spazio tra i valori restituiti può sembrare strano. In questo caso, utilizzare un calcolo più pulito ma più complesso basato su questi esempi:
'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')
Convertire una stringa in data:
Nella casella di testo contenente il nome della colonna in blu immettere To_DateTime(
prima del nome della colonna, quindi aggiungere il formato di dati da utilizzare dopo il nome della colonna, seguito da )
, quindi fare clic su Aggiungi passaggio.
.png
Quando si utilizza l'opzione Modifica per creare la funzione date-conversion, è anche possibile utilizzare Allow_Variable_Digits
per elaborare i valori di colonna con numeri a una o due cifre e gli argomenti Null_On_Error
per eliminare le righe che non corrispondono al pattern richiesto. Vedere anche REPLACE e CAST per scoprire modi alternativi per elaborare i dati che non corrispondono al pattern richiesto.
In alternativa a To_DateTime()
, utilizzare CAST() per modificare il tipo di dati di un valore. Ad esempio, CAST(SalesDate AS DATE)
.
Inoltre, utilizzare l'opzione Sostituisci. Nello strumento di progettazione delle cartelle di lavoro spostarsi nel riquadro Dati fino alla colonna che si desidera convertire, quindi fare clic con il pulsante destro del mouse e selezionare Sostituisci. Configurare il tipo di sostituzione desiderato, quindi fare clic su Aggiungi passaggio.
Visualizzare un campo di data e ora in un fuso orario specifico:
Utilizzare la funzione NEW_TIME nel database insieme a EVALUATE. Ad esempio:
evaluate ('new_time(%1,%2,%3)' as char, "DV - Pipeline and Forecast"."Opportunity"."Last Updated Date",'GMT','AST')
Accertarsi che il campo della data includa il componente dell'ora.
Calcolare la differenza nel tempo:
filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
Measure - filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
1-(filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))/Measure display as percentage
Note:
SQL_TSI_DAY
, tuttavia è possibile utilizzare in alternativa WEEK e MONTH settimana dopo settimana e mese dopo mese.