pl sql datetime format
Сазнајте више о ПЛ СКЛ формату датума и неким корисним функцијама око датума, времена и временског интервала:
У ПЛ / СКЛ Окидачи у ПЛ СКЛ серије , сазнали смо о њиховим врстама, употреби и предностима.
У овом чланку ћемо истражити датум и време у ПЛ / СКЛ и неке функције на типовима података Датетиме, Тиместамп и Интервал. Такође, урадићемо неке основне операције на Датетиме и Интервалу.
Почнимо са дискусијом !!
Шта ћете научити:
ПЛ СКЛ Датетиме формат
ПЛ / СКЛ има тип података датум / време који нам омогућава задржавање и израчунавање датума, интервала и времена. Променљива која је типа датум или време садржи вредност која се назива ДатеТиме. Променљива која чува тип података интервала назива се интервал. Сваки од ових типова података има поља која постављају вредност.
Типови података ДатеТиме наведени су у наставку:
- ТИМЕСТАМП
- ВРЕМЕНСКИ КАМП СА ВРЕМЕНСКОМ ЗОНОМ
- ВРЕМЕНСКИ КАМП СА ЛОКАЛНИМ ВРЕМЕНСКИМ ЗОНОМ
- ДАТУМ
Типови података Интервал наведени су у наставку:
- ИНТЕРВАЛНИ ДАН ДО ДРУГОГ
- ИНТЕРВАЛ ГОДИНА У МЕСЕЦ
ДАТУМ
Датуми фиксне дужине чувају се у типу података ДАТУМ. Садржи време дана од поноћи у секундама. Одељак са датумима упућује на први дан текућег месеца, а временски на поноћ. Садржи информације о датуму и времену у типовима података о броју и знаковима.
СИСДАТЕ је функција датума која преузима тренутно време и датум. Одговарајући датумски распон је од 1. јануара 4712. пре нове ере до 31. децембра 9999. Вредности знакова у подразумеваном формату (одређене Орацле параметром иницијализације НЛС_ДАТЕ_ФОРМАТ) претварају се ПЛ / СКЛ природно у вредности ДАТЕ.
На датуме можемо применити математичке операције попут сабирања и одузимања. ПЛ / СКЛ тумачи целобројне литерале у облику дана. На пример, СИСДАТЕ + 1 бод до сутра.
ТИМЕСТАМП
Тип података временске ознаке је проширење типа података ДАТЕ. Користи се за задржавање године, месеца, сата и секунде. Подразумевани формат временске ознаке одређен је параметром Орацле иницијализације НЛС_ТИМЕСТАМП_ФОРМАТ.
Синтакса:
TIMESTAMP((precision))
Овде прецизност није обавезни параметар и указује на број броја цифара који се налази у разломљеном делу поља секунди. Прецизност треба да буде било који целобројни литерал од 0 до 9. Подразумевана вредност је постављена на 6.
ВРЕМЕНСКИ КАМП СА ВРЕМЕНСКОМ ЗОНОМ
Овај тип података је проширење типа података ТИМЕСТАМП и садржи померање временске зоне. Премештање временске зоне је временска разлика (у сатима и минутима) између локалног времена и универзалног координисаног времена (УТЦ).
Подразумевана временска ознака са форматом временске зоне одређена је параметром Орацле иницијализације НЛС_ТИМЕСТАМП_ТЗ_ФОРМАТ. Синтакса:
TIMESTAMP((precision)) WITH TIME ZONE
Овде прецизност није обавезни параметар и указује на број броја цифара који се налази у разломљеном делу поља секунди. Прецизност треба да буде било који целобројни литерал од 0 до 9. Подразумевана вредност је постављена на 6.
како се прави лажна адреса е-поште
Временску зону можемо поменути симболима. Може бити дугог облика попут „САД / Пацифик“ или укратко попут „ПДТ“ или комбинација оба. Стога се овај тип података користи за покривање и израчунавање информација на различитим географским локацијама.
ВРЕМЕНСКИ КАМП СА ЛОКАЛНИМ ВРЕМЕНСКИМ ЗОНОМ
Временска ознака са локалним типом података временске зоне је проширење типа података ТИМЕСТАМП и садржи померање временске зоне. Премештање временске зоне је временска разлика (у сатима и минутима) између локалног времена и универзалног координисаног времена (УТЦ).
Синтакса:
TIMESTAMP ((precision)) WITH LOCAL TIME ZONE
Овде прецизност није обавезни параметар и указује на број броја цифара који се налази у делимичном делу поља другог. Прецизност треба да буде било који целобројни литерал од 0 до 9. Подразумевана вредност је постављена на 6.
ВРЕМЕНСКИ КАМП СА ЛОКАЛНИМ ВРЕМЕНСКИМ ЗОНОМ разликује се од ВРЕМЕНСКОГ КАМПАНА СА ВРЕМЕНСКИМ ЗОНОМ због чињенице да док у базу података уносимо вредност, вредност је постављена на временску зону базе података и померање временске зоне се не задржава у колони базе података. Међутим, по преузимању вредности она се враћа у сесији локалне временске зоне.
ИНТЕРВАЛ ГОДИНА У МЕСЕЦ
Овај тип података користи се за чување и израчунавање интервала година и месеци.
Синтакса:
INTERVAL YEAR ((precision)) TO MONTH
Овде је прецизност бројање броја цифара у пољу године. Прецизност треба да буде било који целобројни литерал од 0 до 4. Подразумевана вредност је постављена на 2.
ИНТЕРВАЛ ГОДИНЕ ДО ДРУГЕ
Интервал година до други тип података користи се за чување и израчунавање интервала дана, сати, минута и секунди.
Синтакса:
INTERVAL DAY ((l_precision)) TO SECOND ((fractional_s_precision))
Ево, л_прецисион и фрацтионал_с_прецисион су број цифара у пољу дана и секунди.
Прецизност треба да буде било који целобројни литерал од 0 до 9. Задане вредности су постављене на 2 односно 6.
Вредности поља: датум и време
- ДРУГО: Вредности за важећи опсег ДатеТиме су од 00 до 59,9 (м) где м означава временски разломљене секунде. Вредности за важећи распон интервала су од 00 до 59,9 (м) где м означава интервалне фракционе секунде.
- МИНУТ: Вредности за важећи распон датума и времена су од 00 до 59. Вредности за важећи распон интервала су од 0 до 59.
- САТ: Вредности за важећи распон датума и времена су од 00 до 23. Вредности за важећи распон интервала су од 0 до 23.
- ДАН: Вредности за важећи распон датума и времена су од 01 до 31 (ограничене вредностима ГОДИНЕ и МЕСЕЦА, према правилима локалног календара). Вредност за важећи распон интервала је било који цео број који није нула.
- МЕСЕЦ ДАНА: Вредности за важећи распон датума и времена су од 01 до 12. Вредности за важећи распон интервала су од 0 до 11.
- ГОДИНА: Вредности за важећи опсег ДатеТиме су од -4712 до 9999, не укључујући годину 0. Вредност за важећи опсег интервала је било који цео број који није нула.
- ТИМЕЗОНЕ_ХОУР: Вредности за важећи опсег датума су од -12 до 14, укључује промене летњег рачунања времена. Ово се не односи на важећи интервални интервал.
- ТИМЕЗОНЕ_МИНУТЕ: Вредности за важећи распон датума и времена су од 00 до 59. То се не односи на важећи распон интервала.
- ТИМЕЗОНЕ_РЕГИОН: Вриједности за важећи распон датума и времена нису примјењиве за ДАТУМ или ВРИЈЕМЕ. Ово није применљиво за важећи интервал.
- ТИМЕЗОНЕ_АББР: Вриједности за важећи распон датума и времена нису примјењиве за ДАТУМ или ВРИЈЕМЕ. Ово се не односи на важећи интервални интервал.
ПЛ СКЛ функције у Датетиме
Овде м и н садрже вредности датума и времена.
Сл Но. | Име | Сврха |
---|---|---|
7 | СИСДАТЕ () | Дохваћа тренутни датум и време. |
1 | ЛАСТ_ДАИ (м) | Дохваћа последњи дан у месецу. |
два | ДОДАТИ_МЕСЕЦИ (м, н) | Резимира м и н месеци. |
3 | МОНТХС_БЕТВЕЕН (м, н) | Дохваћа број месеци између м и н. |
4 | НЕКСТ_ДАИ (м, дан) | Дохвата датум и датум следећег дана након м. |
5 | СЛЕДЕЋИ ПУТ | Добавља време / дан из корисничке временске зоне. |
6 | КРУГ (м (, јединица)) | Заокружује м. |
8 | ТРУНЦ (м (, јединица)) | Крњи м. |
ПЛ СКЛ функције у временској ознаци
Овде м садржи вредност временске ознаке.
Сл Но. | Име | Сврха |
---|---|---|
7 | ТО_ТИМЕСТАМП_ТЗ (м, (формат)) | Претвара низ м у ТИМЕСТАМП СА ТИМЕЗОНЕОМ. |
1 | ЦУРРЕНТ_ТИМЕСТАМП () | Дохвата ВРЕМЕНСКИ КАМП СА ВРЕМЕНСКИМ ЗОНОМ који има тренутну сесију и временску зону сесије. |
два | ФРОМ_ТЗ (м, временска зона) | Претвара м ТИМЕСТАМП и помиње временску зону у ТИМЕСТАМП СА ТИМЕЗОНЕ. |
3 | ЛОЦАЛТИМЕСТАМП () | Дохваћа ТИМЕСТАМП који има локално време у временској зони сесије. |
4 | СИСТЕМТИМЕСТАМП () | Дохваћа ВРЕМЕНСКИ КАМП СА ВРЕМЕНСКИМ ЗОНОМ који има тренутно време базе података и временску зону базе података. |
5 | СИС_ЕКСТРАЦТ_УТЦ (м) | Претвара м ТИМЕСТАМП СА ТИМЕЗОНЕОМ у ТИМЕСТАМП који има датум и време у УТЦ. |
6 | ТО_ТИМЕСТАМП (м, (формат)) | Претвара низ м у ТИМЕСТАМП. |
Имплементација кода са функцијама Датетиме и Тиместамп:
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; /
Излаз горњег кода:
ПЛ СКЛ функције у интервалу
Сл Но. | Име | Сврха |
---|---|---|
1 | НУМТОДСИНТЕРВАЛ (м, интервал) | Претвара број м у ИНТЕРВАЛНИ ДАН У ДРУГИ. |
два | НУМТОИМИНТЕРВАЛ (м, интервал) | Претвара број м у ИНТЕРВАЛ ГОДИНЕ У МЕСЕЦ. |
3 | ТО_ДСИНТЕРВАЛ (м) | Претвара низ м у ИНТЕРВАЛНИ ДАН У ДРУГИ. |
4 | ТО_ИМИНТЕРВАЛ (м) | Претвара низ м у ИНТЕРВАЛ ГОДИНЕ У МЕСЕЦ. |
Аритметичке операције у времену и интервалу
ПЛ / СКЛ вам омогућава да креирате ДатеТиме и изразе интервала.
Списак оператора који се могу применити су:
- Ако је први операнд ДатеТиме, а други је интервал, а ми желимо да применимо (+) оператор на њих, вредност резултата је типа ДатеТиме.
- Ако је први операнд ДатеТиме, а други је интервал, а ми желимо да применимо (-) оператор на њих, вредност резултата је типа ДатеТиме.
- Ако је први операнд интервал, а други оператер ДатеТиме, а ми желимо да применимо (+) оператор на њих, вредност резултата је типа ДатеТиме.
- Ако је први операнд ДатеТиме, а други је ДатеТиме, а ми желимо да применимо (-) оператор на њих, вредност резултата је интервалског типа.
- Ако је први операнд интервал, а други је интервал, а ми желимо да применимо (+) оператор на њих, вредност резултата је интервалског типа.
- Ако је први операнд интервал, а други је интервал, а ми желимо да применимо (-) оператор на њих, вредност резултата је интервалског типа.
- Ако је први операнд интервални, а други оперативни број, а на њих желимо применити (*) оператор, вредност резултата је интервалског типа.
- Ако је први операнд нумерички, а други операнд је интервал и на њих желимо да применимо (*) оператор, вредност резултата је интервалског типа.
- Ако је први операнд интервални, а други оперативни број, а на њих желимо применити (/) оператор, вредност резултата је интервалског типа.
Имплементација кода са неким аритметичким операцијама у Датетиме и Интервал.
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;
Излаз горњег кода:
питања за интервју за ручно тестирање за 4 године искуства
Објашњење горњег кода:
- У коду, (’1600 5: 20: 1’) значи 1600 дана, 5 сати, 20 минута и 1 секунду .
- У првом излазу, први је операнд ДатеТиме, а други је интервал. Када смо их додали, добили смо датум од 24 ДЕЦ са временом у АМ.
- У другом излазу, први је операнд ДатеТиме, а други је интервал. Одузимањем првог од другог добили смо датум 20-МАР са временом у ПМ.
Често постављана питања и одговори
П # 1) Која је тренутна временска ознака?
Одговор: Тренутна временска ознака или ЦУРРЕНТ_ТИМЕСТАМП описује временску ознаку која зависи од очитавања времена дневног сата током извршавања СКЛ израза на серверу.
П # 2) Шта Сисдате враћа у Орацле?
Одговор: Функција Сисдате () преузима тренутни датум и време конфигурисане у оперативном систему у којем се налази база података. Тип података који се враћа је ДАТУМ.
П # 3) Која ће ПЛ / СКЛ функција дати тренутни системски датум и време?
Одговор: ПЛ / СКЛ функција која даје тренутни системски датум и време је СИСДАТЕ ().
П # 4) Шта је ДУАЛ СКЛ?
Одговор: ДУАЛ је табела базе података коју је Орацле подразумевано креирао заједно са речником података. Садржи један ред и једну колону. ДУАЛ је у власништву СИС-а, али га могу користити сви корисници.
П # 5) Како се декларише променљива датума у ПЛ СКЛ?
Одговор: Можемо прогласити променљиву датума у ПЛ / СКЛ са синтаксом датом у наставку:
DECLARE stdt DATE := to_date ('06/06/2006', 'DD/MM/YYYY');
П # 6) Који је формат датума у Орацле-у?
Одговор: Стандардни формат датума у Орацле-у за улаз и излаз је „ДД / МОН / ИИ“. Ово је конфигурисано вредностом у параметру НЛС_ДАТЕ_ФОРМАТ.
Закључак
У овом водичу за ПЛ СКЛ Датетиме Формат детаљно смо разговарали о неким основним концептима ПЛ / СКЛ датума и времена који су од суштинске важности за њихову употребу у програмирању.
Обрадили смо следеће теме наведене у наставку:
- Датум и време.
- Функције око датума, временског жига и интервала.
- Аритметичке операције на датуму и интервалу.
- Вредности поља у датуму и интервалу.
Препоручено читање
- Функције датума и времена у Ц ++ са примерима
- Питхон ДатеТиме Водич са примерима
- Водич за Ц # ДатеТиме: Рад са датумом и временом у Ц # са примером
- Подпрограми: ПЛ СКЛ процедуре и функције са примерима
- ВБСцрипт датумске функције: функције формата датума, додавања датума и цДате
- ПЛ СКЛ лекције за почетнике са примерима | Шта је ПЛ / СКЛ