pl sql datetime format
Informazioni sul formato PL SQL Datetime e alcune utili funzioni su Datetime, Timestamp e Interval:
Nel PL / SQL Trigger nel Serie PL SQL , abbiamo imparato a conoscere i loro tipi, utilizzo e vantaggi.
In questo articolo, esploreremo la data e l'ora in PL / SQL e alcune delle funzioni sui tipi di dati Datetime, Timestamp e Interval. Inoltre, faremo alcune operazioni di base su Datetime e Interval.
Cominciamo con la discussione !!
Cosa imparerai:
Formato PL SQL Datetime
PL / SQL ha un tipo di dati data / ora che ci consente di contenere e calcolare date, intervalli e ore. La variabile di tipo data o ora contiene un valore denominato DateTime. La variabile che mantiene il tipo di dati intervallo è chiamata intervallo. Ciascuno di questi tipi di dati ha campi che impostano il valore.
I tipi di dati DateTime sono elencati di seguito:
- TIMESTAMP
- TIMESTAMP CON FUSO ORARIO
- TIMESTAMP CON FUSO ORARIO LOCALE
- DATA
I tipi di dati Interval sono elencati di seguito:
- INTERVALLO GIORNO AL SECONDO
- INTERVALLO DA ANNO A MESE
DATA
I datetimes a lunghezza fissa vengono memorizzati nel tipo di dati DATE. Comprende l'ora del giorno dalla mezzanotte in secondi. La sezione della data indica il primo giorno del mese attuale e la sezione dell'ora indica la mezzanotte. Contiene informazioni su data e ora sia in tipi di dati numerici che di caratteri.
SYSDATE è una funzione di data che recupera l'ora e la data attuali. L'intervallo di date corretto va dal 1 gennaio 4712 a.C. al 31 dicembre 9999 d.C. I valori dei caratteri nel formato predefinito (determinato dal parametro di inizializzazione Oracle NLS_DATE_FORMAT) vengono convertiti naturalmente da PL / SQL ai valori DATE.
Possiamo applicare operazioni matematiche come addizione e sottrazione alle date. PL / SQL interpreta i valori letterali interi sotto forma di giorni. Per esempio, SYSDATE + 1 punti a domani.
TIMESTAMP
Il tipo di dati timestamp è un'estensione del tipo di dati DATE. Viene utilizzato per contenere l'anno, il mese, l'ora e il secondo. Il formato di data e ora predefinito è determinato dal parametro di inizializzazione Oracle NLS_TIMESTAMP_FORMAT.
Sintassi:
TIMESTAMP((precision))
In questo caso la precisione non è un parametro obbligatorio e punta al conteggio del numero di cifre che si trova nella parte frazionaria del campo dei secondi. La precisione deve essere qualsiasi valore letterale intero compreso tra 0 e 9. Il valore predefinito è impostato su 6.
TIMESTAMP CON FUSO ORARIO
Questo tipo di dati è un'estensione del tipo di dati TIMESTAMP e contiene lo spostamento del fuso orario. Lo spostamento del fuso orario è la differenza di tempo (in ore e minuti) tra l'ora locale e l'ora UTC (Coordinated Universal Time).
Il timestamp predefinito con il formato del fuso orario è determinato dal parametro di inizializzazione Oracle NLS_TIMESTAMP_TZ_FORMAT. Sintassi:
TIMESTAMP((precision)) WITH TIME ZONE
Qui la precisione non è un parametro obbligatorio e punta al conteggio del numero di cifre che si trova nella parte frazionaria del campo dei secondi. La precisione deve essere qualsiasi valore letterale intero compreso tra 0 e 9. Il valore predefinito è impostato su 6.
java come creare un elenco
Possiamo menzionare il fuso orario con simboli. Può essere di forma lunga come 'Stati Uniti / Pacifico' o in breve come 'PDT' o una combinazione di entrambi. Pertanto, questo tipo di dati viene utilizzato per la copertura e il calcolo delle informazioni in posizioni geografiche.
TIMESTAMP CON FUSO ORARIO LOCALE
Il timestamp con il tipo di dati del fuso orario locale è un'estensione del tipo di dati TIMESTAMP e contiene lo spostamento del fuso orario. Lo spostamento del fuso orario è la differenza di tempo (in ore e minuti) tra l'ora locale e l'ora UTC (Coordinated Universal Time).
Sintassi:
TIMESTAMP ((precision)) WITH LOCAL TIME ZONE
Qui, la precisione non è un parametro obbligatorio e punta al conteggio del numero di cifre che si trova nella parte frazionaria del campo dei secondi. La precisione deve essere qualsiasi valore letterale intero compreso tra 0 e 9. Il valore predefinito è impostato su 6.
TIMESTAMP WITH LOCAL TIME ZONE è diverso da TIMESTAMP WITH TIME ZONE perché mentre inseriamo un valore nel database, il valore è impostato sul fuso orario del database e lo spostamento del fuso orario non viene mantenuto nella colonna del database. Tuttavia, quando si recupera il valore, viene restituito nella sessione del fuso orario locale.
INTERVALLO DA ANNO A MESE
Questo tipo di dati viene utilizzato per archiviare e calcolare l'intervallo di anni e mesi.
Sintassi:
INTERVAL YEAR ((precision)) TO MONTH
Qui, la precisione è il conteggio del numero di cifre nel campo di un anno. La precisione deve essere qualsiasi valore letterale intero compreso tra 0 e 4. Il valore predefinito è impostato su 2.
INTERVALLO ANNO AL SECONDO
Il tipo di dati intervallo da anno a secondo viene utilizzato per memorizzare e calcolare intervalli di giorni, ore, minuti e secondi.
Sintassi:
INTERVAL DAY ((l_precision)) TO SECOND ((fractional_s_precision))
Qui, il l_precision e fractional_s_precision sono il conteggio del numero di cifre rispettivamente nel campo dei giorni e dei secondi.
La precisione deve essere qualsiasi valore letterale intero compreso tra 0 e 9. I valori predefiniti sono impostati rispettivamente su 2 e 6.
Valori di campo: data e ora e intervallo
- SECONDO: I valori per l'intervallo DateTime valido sono compresi tra 00 e 59,9 (m), dove m indica i secondi frazionari. I valori per l'intervallo valido sono compresi tra 00 e 59,9 (m), dove m indica i secondi frazionari dell'intervallo.
- MINUTO: I valori per l'intervallo DateTime valido sono compresi tra 00 e 59. I valori per l'intervallo valido sono compresi tra 0 e 59.
- ORA: I valori per l'intervallo DateTime valido sono compresi tra 00 e 23. I valori per l'intervallo valido sono compresi tra 0 e 23.
- GIORNO: I valori per l'intervallo DateTime valido sono da 01 a 31 (limitati dai valori YEAR e MONTH, secondo le regole del calendario locale). Il valore per un intervallo di intervallo valido è un numero intero diverso da zero.
- MESE: I valori per l'intervallo DateTime valido sono da 01 a 12. I valori per l'intervallo di intervallo valido sono da 0 a 11.
- ANNO: I valori per l'intervallo DateTime valido vanno da -4712 a 9999 escluso l'anno 0. Il valore per l'intervallo di intervallo valido è un numero intero diverso da zero.
- TIMEZONE_HOUR: I valori per l'intervallo DateTime valido sono compresi tra -12 e 14, include le modifiche all'ora legale. Questo non è applicabile all'intervallo di intervallo valido.
- TIMEZONE_MINUTE: I valori per l'intervallo DateTime valido sono compresi tra 00 e 59. Ciò non è applicabile all'intervallo di intervallo valido.
- TIMEZONE_REGION: I valori per l'intervallo DateTime valido non sono applicabili per DATE o TIMESTAMP. Questo non è applicabile per un intervallo di intervallo valido.
- TIMEZONE_ABBR: I valori per l'intervallo DateTime valido non sono applicabili per DATE o TIMESTAMP. Questo non è applicabile all'intervallo di intervallo valido.
Funzioni PL SQL in Datetime
Qui, m e n contengono i valori di datetime.
Sl No. | Nome | Finalità |
---|---|---|
7 | SYSDATE () | Recupera il datetime attuale. |
uno | LAST_DAY (m) | Recupera l'ultimo giorno del mese. |
Due | AGGIUNGI_MESI (m, n) | Riassume m e n mesi. |
3 | MONTHS_BETWEEN (m, n) | Recupera il conteggio del numero di mesi tra me n. |
4 | NEXT_DAY (m, giorno) | Recupera la data e l'ora del giorno successivo dopo m. |
5 | LA PROSSIMA VOLTA | Recupera l'ora / il giorno dal fuso orario richiesto dall'utente. |
6 | ROUND (m (, unità)) | Turni m. |
8 | TRUNC (m (, unità)) | Tronca m. |
Funzioni PL SQL nel timestamp
Qui, m contiene il valore del timestamp.
Sl No. | Nome | Finalità |
---|---|---|
7 | TO_TIMESTAMP_TZ (m, (formato)) | Converte la stringa m in un TIMESTAMP WITH TIMEZONE. |
uno | CURRENT_TIMESTAMP () | Recupera un TIMESTAMP CON TIMEZONE con la sessione attuale e il fuso orario della sessione. |
Due | FROM_TZ (m, time_zone) | Converte m TIMESTAMP e menziona time_zone in TIMESTAMP WITH TIMEZONE. |
3 | LOCALTIMESTAMP () | Recupera un TIMESTAMP con l'ora locale nel fuso orario della sessione. |
4 | SYSTEMTIMESTAMP () | Recupera un TIMESTAMP WITH TIMEZONE con l'ora e il fuso orario del database attuali. |
5 | SYS_EXTRACT_UTC (m) | Converte m TIMESTAMP WITH TIMEZONE in TIMESTAMP con data e ora in UTC. |
6 | TO_TIMESTAMP (m, (formato)) | Converte la stringa m in TIMESTAMP. |
Implementazione del codice con funzioni Datetime e Timestamp:
garanzia di qualità vs controllo di qualità
BEGIN /* get the current date and time */ DBMS_OUTPUT.put_line ('The output of SYSDATE is:'|| SYSDATE); /* get the TIMESTAMP WITH TIME ZONE with database time and time zone */ DBMS_OUTPUT.put_line ('The output of SYSTIMESTAMP is:' ||SYSTIMESTAMP); /* get the TIMESTAMP with local time in session time zone */ DBMS_OUTPUT.put_line ('The output of LOCALTIMESTAMP:' ||LOCALTIMESTAMP); /*get the TIMESTAMP WITH TIME ZONE with present session time with session time zone */ DBMS_OUTPUT.put_line ('The output of CURRENT_TIMESTAMP:'||CURRENT_TIMESTAMP); /*convert string to TIMESTAMP*/ DBMS_OUTPUT.put_line ('The output of TIMESTAMP:'||TO_TIMESTAMP('12-JAN-2011')); /*to add months*/ DBMS_OUTPUT.put_line ('The output of ADD_MONTHS:'||ADD_MONTHS(SYSDATE,1)); /*to get date and time of following day*/ DBMS_OUTPUT.put_line ('The output of NEXT_DAY:'||NEXT_DAY(SYSDATE,'MONDAY')); /*to truncate date */ DBMS_OUTPUT.put_line ('The output of TRUNC:'||TRUNC(SYSDATE)); /*to get the last day of month */ DBMS_OUTPUT.put_line ('The output of LAST_DAY:'||LAST_DAY (SYSDATE)); END; /
Output del codice sopra:
Funzioni PL SQL in intervallo
Sl No. | Nome | Finalità |
---|---|---|
uno | NUMTODSINTERVAL (m, intervallo) | Trasforma il numero m in INTERVALLO DA GIORNO A SECONDO. |
Due | NUMTOYMINTERVAL (m, intervallo) | Trasforma il numero m in INTERVALLO DA ANNO A MESE. |
3 | TO_DSINTERVAL (m) | Trasforma la stringa m in INTERVAL DAY TO SECOND. |
4 | TO_YMINTERVAL (m) | Trasforma la stringa m in INTERVALLO DA ANNO A MESE. |
Operazioni aritmetiche in data e ora e intervallo
PL / SQL consente di creare dateTime e espressioni di intervallo.
L'elenco degli operatori che possono essere applicati sono:
- Se il primo operando è DateTime e il secondo operando è un intervallo, e vogliamo applicare l'operatore (+) su di essi, il valore del risultato è di tipo DateTime.
- Se il primo operando è DateTime e il secondo operando è un intervallo, e vogliamo applicare l'operatore (-) su di essi, il valore del risultato è di tipo DateTime.
- Se il primo operando è intervallo e il secondo è DateTime e si desidera applicare l'operatore (+) su di essi, il valore del risultato è di tipo DateTime.
- Se il primo operando è DateTime e il secondo operando è DateTime e vogliamo applicare l'operatore (-) su di essi, il valore del risultato è di tipo intervallo.
- Se il primo operando è intervallo e il secondo è un intervallo e vogliamo applicare l'operatore (+) su di essi, il valore del risultato è di tipo intervallo.
- Se il primo operando è intervallo e il secondo è un intervallo e vogliamo applicare l'operatore (-) su di essi, il valore del risultato è di tipo intervallo.
- Se il primo operando è intervallo e il secondo è numerico e vogliamo applicare l'operatore (*) su di essi, il valore del risultato è di tipo intervallo.
- Se il primo operando è numerico e il secondo è un intervallo e vogliamo applicare l'operatore (*) su di essi, il valore del risultato è di tipo intervallo.
- Se il primo operando è intervallo e il secondo è numerico e si desidera applicare l'operatore (/) su di essi, il valore del risultato è di tipo intervallo.
Implementazione del codice con alcune operazioni aritmetiche in Datetime e Interval.
DECLARE c_dt TIMESTAMP; r_dt TIMESTAMP; s_dt TIMESTAMP; BEGIN c_dt := SYSTIMESTAMP; r_dt:= c_dt + TO_DSINTERVAL ('1600 5:20:1'); DBMS_OUTPUT.PUT_LINE ('Addition of datetime and Interval:' ||r_dt); s_dt:= c_dt - TO_DSINTERVAL ('1600 5:20:1'); DBMS_OUTPUT.PUT_LINE ('Subtraction of datetime and Interval:' || s_dt); END;
L'output del codice sopra:
Spiegazione del codice sopra:
- Nel codice, ('1600 5: 20: 1') significa 1600 giorni, 5 ore, 20 minuti e 1 secondo .
- Nel primo output, il primo operando è DateTime e il secondo operando è un intervallo. Aggiungendoli abbiamo ottenuto una data come 24-DEC con l'ora in AM.
- Nel secondo output, il primo operando è DateTime e il secondo operando è un intervallo. Sottraendo il primo dal secondo abbiamo ottenuto una data come 20 MAR con ora in PM.
Domande e risposte frequenti
D # 1) Qual è il timestamp corrente?
Risposta: Il timestamp corrente o CURRENT_TIMESTAMP descrive un timestamp che dipende dalla lettura dell'ora dell'orologio diurno durante l'esecuzione di un'istruzione SQL nel server.
D # 2) Cosa restituisce Sysdate in Oracle?
Risposta: La funzione Sysdate () recupera la data e l'ora correnti configurate nel sistema operativo in cui si trova il database. Il tipo di dati del valore restituito da esso è DATE.
D # 3) Quale funzione PL / SQL fornirà la data e l'ora del sistema corrente?
Risposta: La funzione PL / SQL che fornisce la data e l'ora del sistema corrente è SYSDATE ().
Q # 4) Cos'è DUAL SQL?
Risposta: DUAL è una tabella di database creata da Oracle per impostazione predefinita insieme a un dizionario di dati. Contiene una riga e una colonna. DUAL è di proprietà di SYS ma può essere utilizzato da tutti gli utenti.
Q # 5) Come si dichiara una variabile di data in PL SQL?
Risposta: Possiamo dichiarare una variabile di data in PL / SQL con la sintassi indicata di seguito:
DECLARE stdt DATE := to_date ('06/06/2006', 'DD/MM/YYYY');
D # 6) Qual è il formato della data in Oracle?
Risposta: Il formato della data standard in Oracle per l'input e l'output è 'DD / MON / YY'. Questo è configurato dal valore nel parametro NLS_DATE_FORMAT.
Conclusione
In questo tutorial PL SQL Datetime Format, abbiamo discusso in dettaglio alcuni concetti di base di PL / SQL Data e Time che sono essenziali per il loro utilizzo nella programmazione.
Abbiamo trattato i seguenti argomenti elencati di seguito:
- Data e ora.
- Funzioni intorno a Datetime, Timestamp e Interval.
- Operazioni aritmetiche su Datetime e Interval.
- Valori dei campi in Datetime e Interval.
Lettura consigliata
- Funzioni di data e ora in C ++ con esempi
- Tutorial Python DateTime con esempi
- Esercitazione su C # DateTime: utilizzo di data e ora in C # con esempio
- Sottoprogrammi: procedure e funzioni PL SQL con esempi
- Funzioni data di VBScript: formato data, DateAdd e funzioni cDate
- Tutorial PL SQL per principianti con esempi | Cos'è PL / SQL