Stampa      Aprire la Guida in linea in versione PDF


Argomento precedente

Argomento successivo

Funzioni data/ora di calendario

Le funzioni data/ora di calendario modificano i dati in tipi di dati per data, ora e datazione. (Il tipo di dati datazione è una combinazione di data e ora).

Tutte le funzioni data sono conformi allo standard ISO 8601. Ciò influisce in modo particolare sulle funzioni quali Week_Of_Year e Week_Of_Quarter, in cui la settimana iniziale dell'anno è la prima settimana completa che include un giovedì. Per informazioni dettagliate sulle modalità di calcolo delle funzioni data, vedere lo standard ISO 8601.

Current_Date

Restituisce la data corrente. La data è determinata dal computer. Il valore non contiene un componente di ora.

Sintassi:

CURRENT_DATE

Current_Time

Restituisce l'ora corrente. L'ora è determinata dal computer. Il valore non contiene un componente data.

Nota: questa funzione ottiene l'ora corrente al momento dell'esecuzione del report. L'uso di questa funzione con un'area argomenti Analytics impedisce l'inserimento del report nella cache, con conseguente deterioramento delle prestazioni.

Sintassi:

CURRENT_TIME (n)

dove:

n

Qualsiasi numero intero che rappresenta il numero di cifre di precisione con cui visualizzare il secondo frazionale. L'argomento è facoltativo; quando non è specificato alcun argomento, la funzione restituisce la precisione predefinita.

Current_TimeStamp

Restituisce la data/datazione corrente. L'indicatore di data/ora è determinato dal computer.

Nota: questa funzione ottiene l'ora corrente al momento dell'esecuzione del report. L'uso di questa funzione con un'area argomenti Analytics impedisce l'inserimento del report nella cache, con conseguente deterioramento delle prestazioni.

Sintassi:

CURRENT_TIMESTAMP (n)

dove:

n

Qualsiasi numero intero che rappresenta il numero di cifre di precisione con cui visualizzare il secondo frazionale. L'argomento è facoltativo; quando non è specificato alcun argomento, la funzione restituisce la precisione predefinita.

Day_Of_Quarter

Restituisce un numero (tra 1 e 92) corrispondente al giorno del trimestre per la data specificata.

Sintassi:

DAY_OF_QUARTER (espressione_data)

dove:

espressione_data

Qualsiasi espressione il cui valore è una data.

DayName

Restituisce il nome del giorno della settimana (in inglese) per una data specificata.

Sintassi:

DAYNAME (espressione_data)

dove:

espressione_data

Qualsiasi espressione il cui valore è una data.

DayOfMonth

Restituisce il numero corrispondente al giorno del mese per una data specificata.

Sintassi:

DAYOFMONTH (espressione_data)

dove:

espressione_data

Qualsiasi espressione il cui valore è una data.

DayOfWeek

Restituisce un numero tra 1 e 7 corrispondente al giorno della settimana per una data specificata. Il numero 1 corrisponde a domenica, il numero 7 corrisponde a sabato.

Sintassi:

DAYOFWEEK (espressione_data)

dove:

espressione_data

Qualsiasi espressione il cui valore è una data.

DayOfYear

Restituisce il numero (tra 1 e 366) corrispondente al giorno dell'anno per una data specificata.

Sintassi:

DAYOFYEAR (espressione_data)

dove:

espressione_data

Qualsiasi espressione il cui valore è una data.

HOUR

Restituisce un numero (tra 0 e 23) corrispondente all'ora per un'ora specificata. Ad esempio, 0 corrisponde alle 12,00 e 23 corrisponde alle 23,00.

Sintassi:

HOUR (espressione_ora)

dove:

espressione_ora

Qualsiasi espressione il cui valore è un'ora.

MINUTE

Restituisce un numero (tra 0 e 59) corrispondente al minuto per un'ora specificata.

Sintassi:

MINUTE (espressione_ora)

dove:

espressione_ora

Qualsiasi espressione il cui valore è un'ora.

MONTH

Restituisce il numero (tra 1 e 12) corrispondente al mese per una data specificata.

Sintassi:

MONTH (espressione_data)

dove:

espressione_data

Qualsiasi espressione il cui valore è una data.

Month_Of_Quarter

Restituisce il numero (tra 1 e 3) corrispondente al mese nel trimestre per la data specificata.

Sintassi:

MONTH_OF_QUARTER (espressione_data)

dove:

espressione_data

Qualsiasi espressione il cui valore è una data.

MonthName

Restituisce il nome del mese (in inglese) per una data specificata.

Sintassi:

MONTHNAME (espressione_data)

dove:

espressione_data

Qualsiasi espressione il cui valore è una data.

NOW

Restituisce la datazione corrente. La funzione NOW equivale alla funzione CURRENT_TIMESTAMP.

Nota: questa funzione ottiene l'ora corrente al momento dell'esecuzione del report. L'uso di questa funzione con un'area argomenti Analytics impedisce l'inserimento del report nella cache, con conseguente deterioramento delle prestazioni.

Sintassi:

NOW ()

Quarter_Of_Year

Restituisce il numero (tra 1 e 4) corrispondente al trimestre dell'anno per una data specificata.

Sintassi:

QUARTER_OF_YEAR (espressione_data)

dove:

espressione_data

Qualsiasi espressione il cui valore è una data.

SECOND

Restituisce il numero (tra 0 e 59) corrispondente ai secondi per un'ora specificata.

Sintassi:

SECOND (espressione_ora)

dove:

espressione_ora

Qualsiasi espressione il cui valore è un'ora.

TimestampAdd

La funzione TimestampAdd aggiunge un numero di intervalli specificato a una datazione specificata. Viene restituita una singola datazione.

Sintassi:

TimestampAdd (intervallo, espressione_intero, espressione_data/ora)

dove:

intervallo

L'intervallo specificato. I valori validi sono:

SQL_TSI_SECOND

SQL_TSI_MINUTE

SQL_TSI_HOUR

SQL_TSI_DAY

SQL_TSI_WEEK

SQL_TSI_MONTH

SQL_TSI_QUARTER

SQL_TSI_YEAR

espressione_intero

Qualsiasi espressione il cui valore è un numero intero. Questo è il numero di intervalli da aggiungere.

espressione_data/ora

La datazione utilizzata come base nel calcolo.

Un'espressione di numero intero o di datazione nulla passata a questa funzione produrrà un valore di restituzione nullo.

Nello scenario più semplice, questa funzione aggiunge semplicemente il valore di numero intero specificato (integer_expression) al componente della datazione appropriato, in base all'intervallo. L'aggiunta di una settimana corrisponde all'aggiunta di sette giorni, l'aggiunta di un trimestre corrisponde all'aggiunta di tre mesi. Un valore di numero intero negativo produce una sottrazione (arretrando nel tempo).

Un'eccedenza del componente specificato (ad esempio più di 60 secondi, di 24 ore, di dodici mesi e così via) necessita dell'aggiunta di una quantità appropriata al componente successivo. Ad esempio, quando si effettua un'aggiunta al componente del giorno di una datazione, questa funzione prende in considerazione l'eccedenza e il numero di giorni in un particolare mese (inclusi gli anni bisestili in cui febbraio è composto di 29 giorni).

Quando si effettua un'aggiunta al componente del mese di una datazione, questa funzione verifica che la datazione risultante disponga di un numero di giorni sufficiente per il componente del giorno. Ad esempio, l'aggiunta di 1 mese a 2000-05-31 non produce 2000-06-31 perché giugno non è composto di 31 giorni. Questa funzione riduce il componente del giorno all'ultimo giorno del mese, 2000-06-30 in questo esempio.

Un problema simile si verifica quando si effettua un'aggiunta al componente dell'anno di una datazione con un componente del mese di febbraio e componente del giorno di 29 (cioè, l'ultimo giorno di febbraio in un anno bisestile). Se la datazione risultante non rientra in un anno bisestile, la funzione riduce il componente del giorno a 28.

Di seguito vengono riportati esempi della funzione TimestampAdd.

Il seguente esempio di codice richiede la data e l'ora risultanti quando vengono aggiunti 3 giorni a 2000-02-27 14:30:00. Poiché Febbraio 2000 è un anno bisestile, viene restituito un solo indicatore orario 2000-03-01 14:30:00.

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

Il seguente esempio di codice richiede la datazione risultante quando 7 mesi vengono aggiunti a 1999-07-31 0:0:0. Questo restituisce una datazione singola di 2000-02-29 00:00:00. Notare la riduzione del componente del giorno a 29 perché il mese di febbraio è composto da un numero di giorni inferiore.

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

Il seguente esempio di codice richiede la datazione risultante quando 25 minuti vengono aggiunti a 2000-07-31 23:35:00. Questo restituisce una datazione singola di 2000-08-01 00:00:00. Notare la propagazione dell'eccedenza al componente del mese.

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

TimeStampDiff

La funzione TimestampDiff restituisce il numero totale di intervalli specificati tra due datazioni.

Sintassi:

TimestampDiff (intervallo, espressione_data/ora1, espressione_data/ora2)

dove:

intervallo

L'intervallo specificato. I valori validi sono:

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

La datazione da sottrarre alla seconda datazione.

timestamp_expression2

La seconda datazione. timestamp_expression1 viene sottratta da questa datazione in modo da determinare la differenza.

Un parametro di espressione di datazione nullo passato a questa funzione produrrà un valore di restituzione nullo.

Questa funzione determina prima il componente della datazione che corrisponde al parametro di intervallo specificato. Ad esempio, SQL_TSI_DAY corrisponde al componente del giorno e SQL_TSI_MONTH corrisponde al componente del mese.

La funzione quindi utilizza i componenti di ordine superiore di entrambe le datazioni per calcolare il numero totale di intervalli per ciascuna datazione. Ad esempio, se l'intervallo specificato corrisponde al componente del mese, la funzione calcola il numero totale di mesi per ciascuna datazione mediante l'aggiunta del componente del mese e dodici volte il componente dell'anno.

Infine, la funzione sottrae il numero totale di intervalli della prima datazione dal numero totale di intervalli della seconda datazione.

Quando si calcola la differenza in giorni, la funzione tronca i valori dell'ora da entrambe le espressioni data/ora, quindi sottrae i valori della data.

Quando si calcola la differenza in settimane, la funzione calcola la differenza in giorni e divide per sette prima di arrotondare.

Quando si calcola la differenza in trimestri, la funzione calcola la differenza in mesi e divide per tre prima di arrotondare.

Quando si calcola la differenza in anni, la funzione calcola la differenza in mesi e divide per dodici prima di arrotondare.

Esempio della funzione TimestampDiff e risultati

Il seguente esempio di codice richiede una differenza in giorni tra le datazioni 1998-07-31 23:35:00 e 2000-04-01 14:24:00. Restituisce un valore di 610. Notare che l'anno bisestile nel 2000 produce un giorno aggiuntivo.

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

Week_Of_Quarter

Restituisce un numero (tra 1 e 13) corrispondente alla settimana del trimestre per la data specificata.

Sintassi:

WEEK_OF_QUARTER (espressione_data)

dove:

espressione_data

Qualsiasi espressione il cui valore è una data.

Week_Of_Year

Restituisce un numero (tra 1 e 53) corrispondente alla settimana dell'anno per la data specificata.

Sintassi:

WEEK_OF_YEAR (espressione_data)

dove:

espressione_data

Qualsiasi espressione il cui valore è una data.

Anno

Restituisce l'anno per la data specificata.

Sintassi:

YEAR (espressione_data)

dove:

espressione_data

Qualsiasi espressione il cui valore è una data.

Esempio:

YEAR (CURRENT_DATE)


Data di pubblicazione : settembre 2017 Copyright © 2005, 2017, Oracle. Tutti i diritti riservati. Legal Notices.