pl sql datetime format
Další informace o formátu PL SQL Datetime a některých užitečných funkcích kolem Datetime, Timestamp a Interval:
V PL / SQL Spouštěče v Řada PL SQL , dozvěděli jsme se o jejich typech, použití a výhodách.
V tomto článku prozkoumáme datum a čas v PL / SQL a některé funkce datových typů Datetime, Timestamp a Interval. Také provedeme několik základních operací s Datetime a Intervalem.
Začněme s diskusí !!
Co se naučíte:
PL SQL Datetime Format
PL / SQL má datový typ datum / čas, který nám umožňuje uchovávat a počítat data, intervaly a časy. Proměnná typu datum nebo čas obsahuje hodnotu nazvanou DateTime. Proměnná, která udržuje datový typ intervalu, se nazývá interval. Každý z těchto datových typů má pole, která nastavují hodnotu.
Datové typy DateTime jsou uvedeny níže:
- TIMESTAMP
- ČASOVÁ ZNÁMKA S ČASOVOU ZÓNOU
- ČASOVÁ ZNÁMKA S MÍSTNÍ ČASOVOU ZÓNOU
- DATUM
Níže jsou uvedeny typy dat Interval:
- INTERVAL DEN DO DRUHÉHO
- INTERVALOVÝ ROK MĚSÍC
DATUM
Doby pevné délky jsou uloženy v datovém typu DATE. Zahrnuje čas dne od půlnoci v sekundách. Část data ukazuje na první den aktuálního měsíce a část času ukazuje na půlnoc. Obsahuje informace o datu a čase v datových typech čísel i znaků.
SYSDATE je funkce data, která načte aktuální čas a datum. Správné časové období je od 1. ledna 4712 př. N. L. Do 31. prosince 9999 n. L. Hodnoty znaků ve výchozím formátu (určené inicializačním parametrem Oracle NLS_DATE_FORMAT) jsou přirozeně převedeny pomocí hodnot PL / SQL na DATE.
Můžeme použít matematické operace, jako je sčítání a odčítání v datech. PL / SQL interpretuje celočíselné literály ve formě dnů. Například, SYSDATE + 1 bod do zítřka.
TIMESTAMP
Datový typ časové razítko je rozšířením datového typu DATE. Používá se k uchování roku, měsíce, hodiny a sekundy. Výchozí formát časového razítka je určen inicializačním parametrem Oracle NLS_TIMESTAMP_FORMAT.
Syntax:
TIMESTAMP((precision))
Tady přesnost není povinný parametr a ukazuje na počet číslic, který je ve zlomkové části pole sekund. Přesnost by měla být jakýkoli celočíselný literál od 0 do 9. Výchozí hodnota je nastavena na 6.
ČASOVÁ ZNÁMKA S ČASOVOU ZÓNOU
Tento datový typ je rozšířením datového typu TIMESTAMP a obsahuje posunutí časového pásma. Posun časového pásma je časový rozdíl (v hodinách a minutách) mezi místním časem a koordinovaným světovým časem (UTC).
Výchozí časové razítko s formátem časového pásma je určeno inicializačním parametrem Oracle NLS_TIMESTAMP_TZ_FORMAT. Syntax:
TIMESTAMP((precision)) WITH TIME ZONE
Přesnost zde není povinným parametrem a ukazuje na počet číslic, který je ve zlomkové části pole sekund. Přesnost by měla být jakýkoli celočíselný literál od 0 do 9. Výchozí hodnota je nastavena na 6.
jaký je nejlepší bezplatný firewall pro Windows 10
Můžeme zmínit časové pásmo se symboly. Může to být dlouhá forma jako „USA / Tichomoří“ nebo zkrátka jako „PDT“ nebo kombinace obou. Tento datový typ se tedy používá pro pokrytí a výpočet informací napříč geografickými lokalitami.
ČASOVÁ ZNÁMKA S MÍSTNÍ ČASOVOU ZÓNOU
Časové razítko s datovým typem místního časového pásma je rozšířením datového typu TIMESTAMP a obsahuje posunutí časového pásma. Posun časového pásma je časový rozdíl (v hodinách a minutách) mezi místním časem a koordinovaným světovým časem (UTC).
Syntax:
TIMESTAMP ((precision)) WITH LOCAL TIME ZONE
Přesnost zde není povinným parametrem a ukazuje na počet číslic, který je ve zlomkové části pole druhé. Přesnost by měla být jakýkoli celočíselný literál od 0 do 9. Výchozí hodnota je nastavena na 6.
TIMESTAMP WITH LOCAL TIME ZONE se liší od TIMESTAMP WITH TIME ZONE kvůli tomu, že zatímco vkládáme hodnotu do databáze, hodnota je nastavena na časové pásmo databáze a posunutí časového pásma není ve sloupci databáze zadrženo. Po načtení hodnoty je však vrácena v relaci místního časového pásma.
INTERVALOVÝ ROK MĚSÍC
Tento datový typ se používá k ukládání a výpočtu intervalů let a měsíců.
Syntax:
INTERVAL YEAR ((precision)) TO MONTH
Zde je přesnost počet počtu číslic v ročním poli. Přesnost by měla být jakýkoli celočíselný literál od 0 do 4. Výchozí hodnota je nastavena na 2.
INTERVALOVÝ ROK DO DRUHÉHO
Intervalový datový typ rok po sekundu se používá k ukládání a výpočtu intervalů dnů, hodin, minut a sekund.
změnit char na int c ++
Syntax:
INTERVAL DAY ((l_precision)) TO SECOND ((fractional_s_precision))
Tady je l_přesnost a frakční_přesnost jsou počty číslic v poli dnů a sekund.
Přesnost by měla být jakýkoli celočíselný literál od 0 do 9. Výchozí hodnoty jsou nastaveny na 2, respektive 6.
Polní hodnoty: Datetime a Interval
- DRUHÝ: Hodnoty platného rozsahu DateTime jsou od 00 do 59,9 (m), kde m označuje časově zlomkové sekundy. Hodnoty pro platný rozsah intervalu jsou od 00 do 59,9 (m), kde m označuje interval zlomkové sekundy.
- MINUTA: Hodnoty pro platný rozsah DateTime jsou od 00 do 59. Hodnoty pro platný rozsah intervalu jsou od 0 do 59.
- HODINA: Hodnoty pro platný rozsah DateTime jsou od 00 do 23. Hodnoty pro platný rozsah intervalu jsou od 0 do 23.
- DEN: Hodnoty pro platný rozsah DateTime jsou od 01 do 31 (omezené hodnotami YEAR a MONTH, podle pravidel kalendáře národního prostředí). Hodnota platného rozsahu intervalu je jakékoli nenulové celé číslo.
- MĚSÍC: Hodnoty pro platný rozsah DateTime jsou od 01 do 12. Hodnoty pro platný rozsah intervalu jsou od 0 do 11.
- ROK: Hodnoty pro platný rozsah DateTime jsou od -4712 do 9999 bez roku 0. Hodnota pro platný rozsah intervalu je jakékoli nenulové celé číslo.
- TIMEZONE_HOUR: Hodnoty pro platný rozsah DateTime jsou od -12 do 14, zahrnuje změny letního času. To se nevztahuje na platný rozsah intervalů.
- TIMEZONE_MINUTE: Hodnoty pro platný rozsah DateTime jsou od 00 do 59. To se netýká platného rozsahu intervalu.
- TIMEZONE_REGION: Hodnoty platného rozsahu DateTime nelze použít pro DATE nebo TIMESTAMP. To neplatí pro platný rozsah intervalů.
- TIMEZONE_ABBR: Hodnoty platného rozsahu DateTime nelze použít pro DATE nebo TIMESTAMP. To se nevztahuje na platný rozsah intervalů.
Funkce PL SQL v datetime
Zde man obsahují hodnoty datetime.
Sl č. | název | Účely |
---|---|---|
7 | SYSDATE () | Načte aktuální datum a čas. |
1 | LAST_DAY (m) | Načte poslední den v měsíci. |
dva | ADD_MONTHS (m, n) | Shrnuje měsíce měsíce. |
3 | MONTHS_BETWEEN (m, n) | Načte počet měsíců mezi ma n. |
4 | NEXT_DAY (m, den) | Načte datetime následujícího dne po m. |
5 | PŘÍŠTĚ | Načte čas / den z časového pásma požadovaného uživatelem. |
6 | KOLO (m (, jednotka)) | Kola m. |
8 | TRUNC (m (, jednotka)) | Zkrátí m. |
Funkce PL SQL v časovém razítku
Zde m obsahuje hodnotu časového razítka.
Sl č. | název | Účely |
---|---|---|
7 | TO_TIMESTAMP_TZ (m, (formát)) | Převede řetězec m na TIMESTAMP WITH TIMEZONE. |
1 | CURRENT_TIMESTAMP () | Načte časovou značku s časovou zónou, která má aktuální relaci a časové pásmo relace. |
dva | FROM_TZ (m, časová zóna) | Převede m TIMESTAMP a zmíní time_zone na TIMESTAMP WITH TIMEZONE. |
3 | LOCALTIMESTAMP () | Načte TIMESTAMP s místním časem v časovém pásmu relace. |
4 | SYSTÉMOVÝ ČASOVÝ LIST () | Načte časovou značku s časovou zónou, která má aktuální čas databáze a časové pásmo databáze. |
5 | SYS_EXTRACT_UTC (m) | Převede m TIMESTAMP WITH TIMEZONE na TIMESTAMP s datem a časem v UTC. |
6 | TO_TIMESTAMP (m, (formát)) | Převede řetězec m na TIMESTAMP. |
Implementace kódu s funkcemi 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 výše uvedeného kódu:
Funkce PL SQL v intervalu
Sl č. | název | Účely |
---|---|---|
1 | NUMTODSINTERVAL (m, interval) | Transformuje číslo m na INTERVAL DAY TO SECOND. |
dva | NUMTOYMINTERVAL (m, interval) | Transformuje číslo m na INTERVAL YEAR TO MONTH. |
3 | TO_DSINTERVAL (m) | Transformuje řetězec m na INTERVAL DAY TO SECOND. |
4 | TO_YMINTERVAL (m) | Transformuje řetězec m na INTERVAL YEAR TO MONTH. |
Aritmetické operace v datetime a intervalu
PL / SQL umožňuje vytvářet výrazy DateTime a Interval.
Seznam operátorů, které lze použít, je:
- Pokud je první operand DateTime a druhý operand je interval a chceme na ně použít operátor (+), je výsledná hodnota typu DateTime.
- Pokud je první operand DateTime a druhý operand je interval a chceme na ně použít operátor (-), výsledná hodnota je typu DateTime.
- Pokud je prvním operandem interval a druhým operandem je DateTime a chceme na ně použít operátor (+), je výsledná hodnota typu DateTime.
- Pokud je prvním operandem DateTime a druhým operandem je DateTime a chceme na ně použít operátor (-), je výsledná hodnota typu intervalu.
- Pokud je první operand interval a druhý operand je interval a chceme na ně použít operátor (+), bude výsledná hodnota typu intervalu.
- Pokud je první operand interval a druhý operand je interval a chceme na ně použít operátor (-), bude výsledná hodnota typu intervalu.
- Pokud je první operand interval a druhý operand numerický a chceme na ně použít operátor (*), bude výsledná hodnota typu intervalu.
- Pokud je první operand číselný a druhý operand je interval, a chceme na ně použít operátor (*), bude výsledná hodnota typu intervalu.
- Pokud je první operand interval a druhý operand číselný a chceme na ně použít operátor (/), bude výsledná hodnota typu intervalu.
Implementace kódu s některými aritmetickými operacemi 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 výše uvedeného kódu:
Vysvětlení výše uvedeného kódu:
- V kódu („1600 5:20: 1“) znamená 1600 dní, 5 hodin, 20 minut a 1 sekundu .
- V prvním výstupu je prvním operandem DateTime a druhým operandem je interval. Po jejich přidání jsme dostali datum jako 24-DEC s časem v AM.
- Ve druhém výstupu je prvním operandem DateTime a druhým operandem je interval. Při odečtení prvního od druhého jsme dostali datum jako 20-MAR s časem v PM.
Často kladené otázky a odpovědi
Otázka 1) Jaké je aktuální časové razítko?
Odpovědět: Aktuální časové razítko nebo CURRENT_TIMESTAMP popisuje časové razítko, které je závislé na čtení času denních hodin při provádění příkazu SQL na serveru.
Otázka 2) Co vrátí Sysdate v Oracle?
Odpovědět: Funkce Sysdate () načte aktuální datum a čas nakonfigurovaný v operačním systému, kde je databáze umístěna. Vrácený datový typ hodnoty je DATE.
Otázka č. 3) Která funkce PL / SQL poskytne aktuálnímu systému datum a čas?
Odpovědět: Funkce PL / SQL, která udává aktuální systémové datum a čas, je SYSDATE ().
Otázka č. 4) Co je DUAL SQL?
Odpovědět: DUAL je databázová tabulka vytvořená společností Oracle ve výchozím nastavení spolu s datovým slovníkem. Obsahuje jeden řádek a jeden sloupec. DUAL je vlastněn společností SYS, ale mohou jej používat všichni uživatelé.
Otázka č. 5) Jak deklarujete proměnnou data v PL SQL?
Odpovědět: Můžeme deklarovat proměnnou data v PL / SQL se syntaxí uvedenou níže:
DECLARE stdt DATE := to_date ('06/06/2006', 'DD/MM/YYYY');
Otázka č. 6) Jaký je formát data v Oracle?
Odpovědět: Standardní formát data pro Oracle pro vstup a výstup je „DD / MON / RR“. To je konfigurováno hodnotou v parametru NLS_DATE_FORMAT.
Závěr
V tomto tutoriálu PL SQL Datetime Format jsme podrobně diskutovali některé základní pojmy PL / SQL Datum a čas, které jsou nezbytné pro jejich použití v programování.
Pokryli jsme následující témata uvedená níže:
- Datum a čas.
- Funkce kolem Datetime, Timestamp a Interval.
- Aritmetické operace na Datetime a Interval.
- Hodnoty polí v Datetime a Interval.
Doporučené čtení
- Funkce data a času v C ++ s příklady
- Výukový program Python DateTime s příklady
- C # DateTime Tutorial: Práce s datem a časem v C # s příkladem
- Podprogramy: Procedury a funkce PL SQL s příklady
- Funkce VBScript Date: Funkce Date Format, DateAdd a cDate Functions
- Výukový program PL SQL pro začátečníky s příklady | Co je to PL / SQL