pl sql datetime format
Dozviete sa viac o PL SQL Datetime Format a niektorých užitočných funkciách okolo Datetime, Timestamp a Interval:
V PL / SQL Spúšťače v Séria PL SQL , dozvedeli sme sa o ich druhoch, použití a výhodách.
V tomto článku preskúmame dátum a čas v PL / SQL a niektoré z funkcií v dátových typoch Datetime, Timestamp a Interval. Urobíme tiež základné operácie s Datetime a Interval.
Začnime diskusiou !!
Čo sa dozviete:
PL SQL Datetime Format
PL / SQL má dátový typ dátum / čas, ktorý nám umožňuje uchovávať a počítať dátumy, intervaly a časy. Premenná, ktorá je typu date alebo time, obsahuje hodnotu nazvanú DateTime. Premenná, ktorá uchováva dátový typ intervalu, sa nazýva interval. Každý z týchto typov údajov má polia, ktoré nastavujú hodnotu.
Dátové typy DateTime sú uvedené nižšie:
- ČASOVÁ ZNAČKA
- ČASOVÁ ZNÁMKA S ČASOVOU ZÓNOU
- ČASOVÁ pečiatka s miestnym časovým pásmom
- DÁTUM
Nižšie sú uvedené typy údajov Interval:
- INTERVAL DEŇ DO DRUHÉHO
- INTERVALNÝ ROK DO MESIACA
DÁTUM
Doby pevnej dĺžky sú uložené v dátovom type DATE. Zahŕňa čas dňa od polnoci v sekundách. Časová časť ukazuje na prvý deň aktuálneho mesiaca a časová časť ukazuje na polnoc. Obsahuje informácie o dátume a čase v dátových typoch čísel aj znakov.
SYSDATE je funkcia dátumu, ktorá načíta súčasný čas a dátum. Správne obdobie je od 1. januára 4712 pred n. L. Do 31. decembra 9999 n. L. Hodnoty znakov v predvolenom formáte (určené inicializačným parametrom Oracle NLS_DATE_FORMAT) sa prirodzene prevedú pomocou hodnôt PL / SQL na DATE.
Môžeme použiť matematické operácie ako sčítanie a odčítanie dátumov. PL / SQL interpretuje celočíselné literály vo forme dní. Napríklad, SYSDATE + 1 bod do zajtra.
ČASOVÁ ZNAČKA
Dátový typ časová pečiatka je rozšírením dátového typu DATE. Slúži na uchovanie roku, mesiaca, hodiny a sekundy. Predvolený formát časovej pečiatky je určený inicializačným parametrom Oracle NLS_TIMESTAMP_FORMAT.
Syntax:
TIMESTAMP((precision))
Presnosť tu nie je povinným parametrom a ukazuje na počet číslic, ktorý sa nachádza vo zlomkovej časti poľa sekúnd. Presnosť by mala byť akékoľvek celé číslo od 0 do 9. Predvolená hodnota je nastavená na 6.
ČASOVÁ ZNÁMKA S ČASOVOU ZÓNOU
Tento dátový typ je rozšírením dátového typu TIMESTAMP a obsahuje posun časového pásma. Posun časového pásma je časový rozdiel (v hodinách a minútach) medzi miestnym časom a koordinovaným svetovým časom (UTC).
Predvolená časová pečiatka s formátom časového pásma je určená inicializačným parametrom Oracle NLS_TIMESTAMP_TZ_FORMAT. Syntax:
TIMESTAMP((precision)) WITH TIME ZONE
Presnosť tu nie je povinným parametrom a ukazuje na počet číslic, ktorý sa nachádza vo zlomkovej časti sekundového poľa. Presnosť by mala byť akékoľvek celé číslo od 0 do 9. Predvolená hodnota je nastavená na 6.
najlepší nástroj na kontrolu kódu pre git
Môžeme spomenúť časové pásmo so symbolmi. Môže to byť dlhodobá forma ako „USA / Tichomorie“ alebo skrátene ako „PDT“ alebo kombinácia oboch. Tento dátový typ sa teda používa na pokrytie a výpočet informácií v rôznych geografických polohách.
ČASOVÁ pečiatka s miestnym časovým pásmom
Časová pečiatka s údajovým typom miestneho časového pásma je rozšírením údajového typu TIMESTAMP a obsahuje posun časového pásma. Posun časového pásma je časový rozdiel (v hodinách a minútach) medzi miestnym časom a koordinovaným svetovým časom (UTC).
Syntax:
TIMESTAMP ((precision)) WITH LOCAL TIME ZONE
Presnosť tu nie je povinným parametrom a ukazuje na počet číslic, ktorý sa nachádza vo zlomkovej časti poľa sekundy. Presnosť by mala byť akékoľvek celé číslo od 0 do 9. Predvolená hodnota je nastavená na 6.
ČASOVÁ ČÍSLO S LOKÁLNOU ČASOVOU ZÓNOU sa líši od ČASOVÉHO ZNAČKY S ČASOVOU ZÓNOU z dôvodu, že zatiaľ čo do databázy vkladáme hodnotu, hodnota je nastavená na časové pásmo databázy a posun časového pásma sa v stĺpci databázy neudrží. Po načítaní sa však vráti v relácii miestneho časového pásma.
INTERVALNÝ ROK DO MESIACA
Tento dátový typ sa používa na ukladanie a výpočet intervalov rokov a mesiacov.
Syntax:
INTERVAL YEAR ((precision)) TO MONTH
V tomto prípade presnosť predstavuje počet číslic v ročnom poli. Presnosť by mala byť akékoľvek celé číslo od 0 do 4. Predvolená hodnota je nastavená na 2.
INTERVALNÝ ROK DO DRUHÉHO
Interval medzi údajmi typu rok až druhý sa používa na ukladanie a výpočet intervalov dní, hodín, minút a sekúnd.
Syntax:
INTERVAL DAY ((l_precision)) TO SECOND ((fractional_s_precision))
Tu je l_presnosť a frakčná_s_presnosť sú počty číslic v poli dní, respektíve sekúnd.
Presnosť by mala byť akékoľvek celé číslo od 0 do 9. Predvolené hodnoty sú nastavené na 2, respektíve 6.
Hodnoty poľa: dátum a čas
- DRUHÉ: Hodnoty pre platný rozsah DateTime sú od 00 do 59,9 (m), kde m označuje časovo zlomkové sekundy. Hodnoty pre platný rozsah intervalu sú od 00 do 59,9 (m), kde m označuje interval zlomkové sekundy.
- MINUTA: Hodnoty pre platný rozsah DateTime sú od 00 do 59. Hodnoty pre platný rozsah intervalov sú od 0 do 59.
- HODINA: Hodnoty pre platný rozsah dátumu a času sú od 00 do 23. Hodnoty pre platný rozsah intervalov sú od 0 do 23.
- DEŇ: Hodnoty pre platný rozsah DateTime sú od 01 do 31 (obmedzené hodnotami YEAR a MONTH podľa pravidiel miestneho kalendára). Hodnota pre platný rozsah intervalov je akékoľvek nenulové celé číslo.
- MESIAC: Hodnoty pre platný rozsah dátumu a času sú od 01 do 12. Hodnoty pre platný rozsah intervalov sú od 0 do 11.
- ROK: Hodnoty platného rozsahu DateTime sú od -4712 do 9999 bez roku 0. Hodnota pre platný rozsah intervalov je akékoľvek nenulové celé číslo.
- TIMEZONE_HOUR: Hodnoty platného rozsahu dátumu a času sú od -12 do 14, zahŕňajú zmeny letného času. To sa nevzťahuje na platný rozsah intervalov.
- TIMEZONE_MINUTE: Hodnoty platného rozsahu dátumu a času sú od 00 do 59. Toto sa netýka platného rozsahu intervalov.
- TIMEZONE_REGION: Hodnoty platného rozsahu DateTime nie sú použiteľné pre DATE alebo TIMESTAMP. To sa nevzťahuje na platný rozsah intervalov.
- TIMEZONE_ABBR: Hodnoty platného rozsahu DateTime nie sú použiteľné pre DATE alebo TIMESTAMP. To sa nevzťahuje na platný rozsah intervalov.
Funkcie PL SQL v dátovom čase
Tu m a n obsahujú hodnoty datetime.
Sl č. | názov | Účely |
---|---|---|
7 | SYSDATE () | Načíta aktuálny dátum a čas. |
jeden | LAST_DAY (m) | Načíta posledný deň v mesiaci. |
dva | ADD_MONTHS (m, n) | Zhrňuje m a n mesiacov. |
3 | MONTHS_BETWEEN (m, n) | Načíta počet mesiacov medzi ma n. |
4 | NEXT_DAY (m, deň) | Načíta čas nasledujúceho dňa po m. |
5 | NABUDÚCE | Načíta čas / deň z časovej zóny požadovanej používateľom. |
6 | KOLO (m (, jednotka)) | Kruhy m. |
8 | TRUNC (m (, jednotka)) | Orezáva m. |
Funkcie PL SQL v časovej značke
Tu m obsahuje hodnotu časovej pečiatky.
Sl č. | názov | Účely |
---|---|---|
7 | TO_TIMESTAMP_TZ (m, (formát)) | Skonvertuje reťazec m na ČASOVÚ ZNÁMKU S ČASOVOU ZÓNOU. |
jeden | CURRENT_TIMESTAMP () | Načíta časovú pečiatku s časovou zónou, ktorá má aktuálnu reláciu a časové pásmo relácie. |
dva | FROM_TZ (m, časová zóna) | Skonvertuje m TIMESTAMP a uvádza time_zone na TIMESTAMP WITH TIMEZONE. |
3 | LOCALTIMESTAMP () | Načíta TIMESTAMP s miestnym časom v časovom pásme relácie. |
4 | SYSTEMTIMESTAMP () | Načíta časovú pečiatku s časovou zónou, ktorá má aktuálny čas databázy a časové pásmo databázy. |
5 | SYS_EXTRACT_UTC (m) | Prevedie m TIMESTAMP S ČASOVOU ZÓNOU na TIMESTAMP s dátumom a časom v UTC. |
6 | TO_TIMESTAMP (m, (formát)) | Skonvertuje reťazec m na TIMESTAMP. |
Implementácia kódu s funkciami Datetime a Timestamp:
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; /
Výstup vyššie uvedeného kódu:
Funkcie PL SQL v intervale
Sl č. | názov | Účely |
---|---|---|
jeden | NUMTODSINTERVAL (m, interval) | Transformuje číslo m na INTERVAL DAY TO SECOND. |
dva | NUMTOYMINTERVAL (m, interval) | Transformuje číslo m na INTERVALNÝ ROK DO MESIACA. |
3 | TO_DSINTERVAL (m) | Transformuje reťazec m na INTERVAL DAY TO SECOND. |
4 | TO_YMINTERVAL (m) | Transformuje reťazec m na INTERVALNÝ ROK DO MESIACA. |
Aritmetické operácie v dátume a intervale
PL / SQL umožňuje vytvárať výrazy DateTime a Interval.
Zoznam operátorov, ktoré je možné použiť, je:
- Ak je prvý operand DateTime a druhý operand je interval a chceme na ne použiť operátor (+), výsledná hodnota je typu DateTime.
- Ak je prvý operand DateTime a druhý operand je interval a chceme na ne použiť operátor (-), výsledná hodnota je typu DateTime.
- Ak je prvý operand interval a druhý operand je DateTime a chceme na ne použiť operátor (+), výsledná hodnota je typu DateTime.
- Ak je prvý operand DateTime a druhý operand DateTime a chceme na ne použiť operátor (-), výsledná hodnota je typu intervalu.
- Ak je prvý operand interval a druhý operand je interval a chceme na ne použiť operátor (+), bude výsledná hodnota intervalového typu.
- Ak je prvý operand interval a druhý operand je interval a chceme na ne použiť operátor (-), bude výsledná hodnota intervalového typu.
- Ak je prvý operand interval a druhý operand numerický a chceme na ne aplikovať operátor (*), výsledná hodnota je intervalového typu.
- Ak je prvý operand číselný a druhý operand je interval, a chceme na ne použiť operátor (*), výsledná hodnota je typu intervalu.
- Ak je prvý operand interval a druhý operand numerický a chceme na ne aplikovať operátor (/), výsledná hodnota je intervalového typu.
Implementácia kódu s niektorými aritmetickými operáciami v Datetime a 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;
Výstup z vyššie uvedeného kódu:
Vysvetlenie vyššie uvedeného kódu:
- V kóde („1600 5:20: 1“) znamená 1 600 dní, 5 hodín, 20 minút a 1 sekundu .
- V prvom výstupe je prvým operandom DateTime a druhým operandom je interval. Po ich pridaní sme dostali dátum ako 24-DEC s časom v AM.
- Na druhom výstupe je prvým operandom DateTime a druhým operandom je interval. Pri odčítaní prvého od druhého sme dostali dátum ako 20-MAR s časom v PM.
Často kladené otázky a odpovede
Otázka č. 1) Aká je aktuálna časová pečiatka?
Odpoveď: Aktuálna časová pečiatka alebo CURRENT_TIMESTAMP popisuje časovú pečiatku, ktorá závisí od čítania času denných hodín pri vykonávaní príkazu SQL na serveri.
Otázka 2) Čo vráti program Sysdate v systéme Oracle?
Odpoveď: Funkcia Sysdate () načíta aktuálny dátum a čas nakonfigurovaný v operačnom systéme, kde je umiestnená databáza. Dátový typ hodnoty, ktorý vráti, je DATE.
Otázka č. 3) Ktorá funkcia PL / SQL poskytne aktuálnemu systému dátum a čas?
Odpoveď: Funkcia PL / SQL, ktorá udáva aktuálny systémový dátum a čas, je SYSDATE ().
Otázka č. 4) Čo je DUAL SQL?
Odpoveď: DUAL je databázová tabuľka vytvorená spoločnosťou Oracle štandardne spolu s dátovým slovníkom. Obsahuje jeden riadok a jeden stĺpec. DUAL vlastní spoločnosť SYS, ale môžu ho používať všetci používatelia.
Otázka č. 5) Ako deklarujete premennú dátumu v PL SQL?
Odpoveď: Môžeme deklarovať premennú dátumu v PL / SQL so syntaxou uvedenou nižšie:
DECLARE stdt DATE := to_date ('06/06/2006', 'DD/MM/YYYY');
Otázka č. 6) Aký je formát dátumu v systéme Oracle?
Odpoveď: Štandardný formát dátumu v systéme Oracle pre vstup a výstup je „DD / MON / RR“. Konfiguruje sa to podľa hodnoty v parametri NLS_DATE_FORMAT.
Záver
V tomto výučbe PL SQL Datetime Format sme podrobne rozobrali niektoré základné pojmy PL / SQL Dátum a čas, ktoré sú nevyhnutné pre ich použitie v programovaní.
rozdiel medzi opakovaným testovaním a regresným testovaním
Prebrali sme nasledujúce témy uvedené nižšie:
- Dátum a čas.
- Funkcie okolo Datetime, Timestamp a Interval.
- Aritmetické operácie na Datetime a Interval.
- Hodnoty polí v Datetime a Interval.
Odporúčané čítanie
- Funkcie dátumu a času v C ++ s príkladmi
- Výukový program pre Python DateTime s príkladmi
- Výukový program pre C # DateTime: Práca s dátumom a časom v C # s príkladom
- Podprogramy: Procedúry a funkcie PL SQL s príkladmi
- Funkcie dátumu VBScript: funkcie formátu dátumu, DateAdd a cDate
- Výukový program PL SQL pre začiatočníkov s príkladmi Čo je to PL / SQL