pl sql datetime format
Научете за PL SQL Datetime Format и някои полезни функции около Datetime, Timestamp и Interval:
В PL / SQL Задействания в PL SQL серия , научихме за техните видове, употреба и предимства.
В тази статия ще изследваме датата и часа в PL / SQL и някои от функциите на типовете данни Datetime, Timestamp и Interval. Също така ще направим някои основни операции на Datetime и Interval.
Нека започнем с дискусията !!
Какво ще научите:
PL SQL Datetime формат
PL / SQL има тип данни за дата / час, който ни позволява да съхраняваме и изчисляваме дати, интервали и времена. Променливата, която е от тип дата или час, съдържа стойност, наречена DateTime. Променливата, която поддържа интервалния тип данни, се нарича интервал. Всеки от тези типове данни има полета, които задават стойността.
Типовете данни DateTime са изброени по-долу:
- TIMESTAMP
- ВРЕМЕВЕН ТАМПЕР С ЧАСОВИЯ ЗОН
- РЕЖИМ С МЕСТЕН ЧАСОВ ЗОНА
- ДАТА
Типовете данни за интервала са изброени по-долу:
- ИНТЕРВАЛЕН ДЕН ДО ВТОРИ
- ИНТЕРВАЛНА ГОДИНА ДО МЕСЕЦ
ДАТА
Датите с фиксирана дължина се съхраняват в типа данни DATE. Той включва времето на деня от полунощ в секунди. Разделът за дати сочи към първия ден на настоящия месец, а отрязъкът от време - към полунощ. Той съдържа информация за дата и час както в типове данни за брой, така и за знаци.
SYSDATE е функция за дата, която извлича настоящия час и дата. Подходящият период от време е от 1 януари 4712 г. пр. Н. Е. До 31 декември 9999 г. сл. Хр. Стойностите на символите във формата по подразбиране (определени от параметъра за инициализация на Oracle NLS_DATE_FORMAT) се преобразуват естествено от PL / SQL в DATE стойности.
Можем да прилагаме математически операции като събиране и изваждане на дати. PL / SQL интерпретира целочислени литерали под формата на дни. Например, SYSDATE + 1 точки до утре.
TIMESTAMP
Типът данни с времеви клей е разширение на типа данни DATE. Използва се за задържане на годината, месеца, часа и секундата. Форматът на клеймото по подразбиране се определя от параметъра за инициализация на Oracle NLS_TIMESTAMP_FORMAT.
Синтаксис:
TIMESTAMP[(precision)]
Тук точността не е задължителен параметър и сочи към броя на цифрите, който е в дробната част на полето за секунди. Точността трябва да бъде всеки целочислен литерал от 0 до 9. Стойността по подразбиране е зададена на 6.
ВРЕМЕВЕН ТАМПЕР С ЧАСОВИЯ ЗОН
Този тип данни е разширение на типа данни TIMESTAMP и съдържа изместване на часовата зона. Изместването на часовата зона е разликата във времето (в часове и минути) между местното време и универсалното координирано време (UTC).
Клеймото по подразбиране с формат на часовата зона се определя от параметъра за инициализация на Oracle NLS_TIMESTAMP_TZ_FORMAT. Синтаксис:
TIMESTAMP[(precision)] WITH TIME ZONE
Тук точността не е задължителен параметър и сочи към броя на цифрите, който е в дробната част на полето за секунди. Точността трябва да бъде всеки целочислен литерал от 0 до 9. Стойността по подразбиране е зададена на 6.
как да настроите мрежова защитна стена
Можем да споменем часовата зона със символи. Може да бъде с дълга форма като „САЩ / Тихия океан“ или накратко като „PDT“ или комбинация от двете. По този начин този тип данни се използва за покриване и изчисляване на информация в различни географски местоположения.
РЕЖИМ С МЕСТЕН ЧАСОВ ЗОНА
Клеймото за време с тип данни за местна часова зона е разширение на типа данни TIMESTAMP и съдържа изместване на часовата зона. Изместването на часовата зона е разликата във времето (в часове и минути) между местното време и универсалното координирано време (UTC).
Синтаксис:
TIMESTAMP [(precision)] WITH LOCAL TIME ZONE
Тук точността не е задължителен параметър и сочи към броя на цифрите, който е в дробната част на полето на секундата. Точността трябва да бъде всеки целочислен литерал от 0 до 9. Стойността по подразбиране е зададена на 6.
TIMESTAMP С ЛОКАЛЕН ЧАСОВ ЗОН се различава от TIMESTAMP С ЧАСОВИЯ ЗОН поради факта, че докато вмъкваме стойност в базата данни, стойността е зададена на часовата зона на базата данни и изместването на часовата зона не се задържа в колоната на базата данни. При извличане на стойността обаче тя се връща в сесията на местния часови пояс.
ИНТЕРВАЛНА ГОДИНА ДО МЕСЕЦ
Този тип данни се използва за съхраняване и изчисляване на интервал от години и месеци.
Синтаксис:
INTERVAL YEAR [(precision)] TO MONTH
Тук точността е броят на броя на цифрите в полето за една година. Точността трябва да бъде всеки целочислен литерал от 0 до 4. Стойността по подразбиране е зададена на 2.
ИНТЕРВАЛНА ГОДИНА ДО ВТОРА
Интервалът от година до втори тип данни се използва за съхраняване и изчисляване на интервали от дни, часове, минути и секунди.
Синтаксис:
INTERVAL DAY [(l_precision)] TO SECOND [(fractional_s_precision)]
Ето, l_precision и fractional_s_precision са броят на броя на цифрите в полето дни и секунди, съответно.
имейл парола cracker онлайн хак инструмент
Точността трябва да е всеки целочислен литерал от 0 до 9. Стойностите по подразбиране са зададени съответно на 2 и 6.
Стойности на полето: Дата и интервал
- ВТОРО: Стойностите за валиден диапазон DateTime са от 00 до 59,9 (m), където m означава фракционните секунди във времето. Стойностите за валидния интервал от интервали са от 00 до 59,9 (m), където m означава интервалните дробни секунди.
- МИНУТА: Стойностите за валиден диапазон DateTime са от 00 до 59. Стойностите за валидния диапазон от интервали са от 0 до 59.
- ЧАС: Стойностите за валиден диапазон DateTime са от 00 до 23. Стойностите за валидния диапазон от интервали са от 0 до 23.
- ДЕН: Стойностите за валиден диапазон DateTime са от 01 до 31 (ограничени от стойностите YEAR и MONTH, според правилата на локалния календар). Стойността за валиден интервал от интервали е всяко ненулево цяло число.
- МЕСЕЦ: Стойностите за валиден интервал DateTime са от 01 до 12. Стойностите за валидния диапазон от интервали са от 0 до 11.
- ГОДИНА: Стойностите за валиден диапазон DateTime са от -4712 до 9999, без да включва година 0. Стойността за валидния интервал от интервали е всяко ненулево цяло число.
- TIMEZONE_HOUR: Стойностите за валиден диапазон DateTime са от -12 до 14, той включва промени в лятното часово време. Това не е приложимо за валидния интервал от интервали.
- TIMEZONE_MINUTE: Стойностите за валиден диапазон DateTime са от 00 до 59. Това не е приложимо за валидния интервал от време.
- TIMEZONE_REGION: Стойностите за валиден диапазон DateTime не са приложими за DATE или TIMESTAMP. Това не е приложимо за валиден интервал от интервали.
- TIMEZONE_ABBR: Стойностите за валиден диапазон DateTime не са приложими за DATE или TIMESTAMP. Това не е приложимо за валидния интервал от интервали.
PL SQL функции в Datetime
Тук m и n съдържат стойностите на датата и времето.
Sl No. | Име | Цели |
---|---|---|
7 | SYSDATE () | Извлича настоящата дата и час. |
1 | LAST_DAY (m) | Извлича последния ден от месеца. |
две | ADD_MONTHS (m, n) | Обобщава m и n месеца. |
3 | MONTHS_BETWEEN (m, n) | Извлича броя на месеците между m и n. |
4 | NEXT_DAY (m, ден) | Извлича датата и часа на следващия ден след m. |
5 | СЛЕДВАЩИЯТ ПЪТ | Извлича времето / ден от часовата зона, поискана от потребителя. |
6 | КРЪГЛИ (m [, единица]) | Закръглява m. |
8 | TRUNC (m [, единица]) | Съкращава m. |
PL SQL функции в клеймо за време
Тук m съдържа стойността на клеймото за време.
Sl No. | Име | Цели |
---|---|---|
7 | TO_TIMESTAMP_TZ (m, [формат]) | Преобразува низа m в TIMESTAMP С TIMEZONE. |
1 | CURRENT_TIMESTAMP () | Извлича TIMESTAMP С TIMEZONE с настоящата сесия и часовата зона на сесията. |
две | FROM_TZ (м, часова зона) | Преобразува m TIMESTAMP и споменава time_zone в TIMESTAMP WITH TIMEZONE. |
3 | LOCALTIMESTAMP () | Извлича TIMESTAMP с локално време в часовата зона на сесията. |
4 | SYSTEMTIMESTAMP () | Извлича TIMESTAMP С TIMEZONE с настоящото време на базата данни и часова зона на базата данни. |
5 | SYS_EXTRACT_UTC (м) | Преобразува m TIMESTAMP С TIMEZONE в TIMESTAMP с дата и час в UTC. |
6 | TO_TIMESTAMP (m, [формат]) | Преобразува низа m в 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; /
Изход на горния код:
PL SQL функции в интервал
Sl No. | Име | Цели |
---|---|---|
1 | NUMTODSINTERVAL (m, интервал) | Преобразува числото m в INTERVAL DAY TO SECOND. |
две | NUMTOYMINTERVAL (m, интервал) | Преобразува числото m в ИНТЕРВАЛ ГОДИНА В МЕСЕЦ. |
3 | TO_DSINTERVAL (м) | Преобразува низа m в INTERVAL DAY TO SECOND. |
4 | TO_YMINTERVAL (m) | Преобразува низа m в ИНТЕРВАЛ ГОДИНА В МЕСЕЦ. |
Аритметични операции в дата и час
PL / SQL ви позволява да създавате DateTime и интервални изрази.
Списъкът на операторите, които могат да бъдат приложени, са:
- Ако първият операнд е DateTime, а вторият операнд е интервал и ние искаме да приложим оператора (+) върху тях, стойността на резултата е от тип DateTime.
- Ако първият операнд е DateTime, а вторият операнд е интервал и ние искаме да приложим оператора (-) върху тях, стойността на резултата е от тип DateTime.
- Ако първият операнд е интервал, а вторият операнд е DateTime и ние искаме да приложим оператора (+) върху тях, стойността на резултата е от тип DateTime.
- Ако първият операнд е DateTime, а вторият операнд е DateTime и ние искаме да приложим оператора (-) върху тях, стойността на резултата е от интервален тип.
- Ако първият операнд е интервал, а вторият операнд е интервал и ние искаме да приложим оператора (+) върху тях, стойността на резултата е от тип интервал.
- Ако първият операнд е интервал, а вторият операнд е интервал и ние искаме да приложим оператора (-) върху тях, стойността на резултата е от тип интервал.
- Ако първият операнд е интервал, а вторият операнд е числов и ние искаме да приложим оператора (*) върху тях, стойността на резултата е от интервален тип.
- Ако първият операнд е цифров, а вторият операнд е интервал и ние искаме да приложим оператора (*) върху тях, стойността на резултата е от тип интервал.
- Ако първият операнд е интервал, а вторият операнд е числов и ние искаме да приложим (/) оператора върху тях, стойността на резултата е от интервален тип.
Внедряване на код с някои аритметични операции в Datetime и 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;
Резултатът от горния код:
Обяснение на горния код:
- В кода (‘1600 5: 20: 1’) означава 1600 дни, 5 часа, 20 минути и 1 секунда .
- В първия изход първият операнд е DateTime, а вторият операнд е интервал. При добавянето им получихме дата като 24-DEC с време в AM.
- Във втория изход първият операнд е DateTime, а вторият операнд е интервал. При изваждане на първо от второто получихме дата 20-MAR с време в PM.
Често задавани въпроси и отговори
В # 1) Какъв е текущият клеймо за време?
Отговор: Текущата времева марка или CURRENT_TIMESTAMP описва времева марка, която зависи от четенето на часа на денонощието, докато изпълнява SQL оператор в сървъра.
В # 2) Какво връща Sysdate в Oracle?
Отговор: Функцията Sysdate () извлича текущата дата и час, конфигурирани в операционната система, където се намира базата данни. Типът данни за стойност, който се връща от него, е DATE.
В # 3) Коя PL / SQL функция ще даде текущата система и дата и час?
Отговор: PL / SQL функцията, която дава текущата дата и час на системата, е SYSDATE ().
В # 4) Какво е DUAL SQL?
Отговор: DUAL е таблица на базата данни, създадена от Oracle по подразбиране заедно с речник на данни. Съдържа един ред и една колона. DUAL е собственост на SYS, но може да се използва от всички потребители.
В # 5) Как декларирате променлива за дата в PL SQL?
Отговор: Можем да декларираме променлива за дата в PL / SQL със синтаксиса, даден по-долу:
DECLARE stdt DATE := to_date ('06/06/2006', 'DD/MM/YYYY');
В # 6) Какъв е форматът на датата в Oracle?
Отговор: Стандартният формат за дата в Oracle за вход и изход е „DD / MON / YY“. Това е конфигурирано от стойността в параметъра NLS_DATE_FORMAT.
Заключение
В този урок PL SQL Datetime Format ние обсъдихме подробно някои основни концепции за PL / SQL дата и час, които са от съществено значение за използването им при програмирането.
Покрихме следните теми, изброени по-долу:
- Дата и час.
- Функции около Datetime, Timestamp и Interval.
- Аритметични операции върху дата и интервал.
- Стойности на полета в Datetime и Interval.
Препоръчително четене
- Функции за дата и час в C ++ с примери
- Урок за Python DateTime с примери
- Урок за C # DateTime: Работа с дата и час в C # с пример
- Подпрограми: PL SQL процедури и функции с примери
- Функции за дата на VBScript: Функции за формат на дата, Добавяне на дата и cDate
- PL SQL Урок за начинаещи с примери | Какво е PL / SQL