У цьому розділі ми збираємося зрозуміти роботу Тип даних PostgreSQL Interval, і ми теж бачимо приклади з Інтервальний тип даних. І в основному використовується Interval функції , наприклад, NOW(), TO_CHAR(), EXTRACT(), justify_days(), justify_hours(), justify_interval(). The Вхід і вихід формат для значень інтервалів PostgreSQL.
Що таке інтервальний тип даних PostgreSQL?
У PostgreSQL, Інтервал це ще один тип даних, який використовується для зберігання та розгортання часу роки, місяці, дні, години, хвилини, секунди, і т. д. І місяці і дні цінності є цілі значення , тоді як друге поле може бути значення дробів.
Значення типу даних інтервалу PostgreSQL включає 16 байт зберігання розмір, який допомагає зберігати період із прийнятним діапазоном від - 178000000 років до 178000000 років.
if-else java
Примітка. Кількість цифр дробу, взята в другому полі, відома як точність p.
Синтаксис типу даних PostgreSQL Interval
Синтаксис типу даних PostgreSQL Interval такий:
@ interval [ fields ] [ (p) ]
У наведеному вище синтаксисі ми маємо такі параметри:
Параметр | опис |
---|---|
поля | Параметр поля використовується для відображення часу. |
стор | P використовується для відображення точного значення. |
@ | Ми можемо ігнорувати параметр @, оскільки це необов’язковий параметр. |
Давайте подивимося приклад прикладу, щоб краще зрозуміти, як ми можемо записати значення інтервалів з параметр @ і без параметра @ :
@interval '6 months before'; @interval '2 hours 30 minutes';
АБО
interval '6 months before'; interval '2 hours 30 minutes';
Примітка. Ми можемо використовувати обидва наведені вище твердження, оскільки вони відповідають одне одному. Крім того, значення інтервалу може мати вибіркове значення точності p із дозволеним діапазоном від 0 до 6.
Приклад типу даних PostgreSQL Interval
Давайте розглянемо приклади, щоб зрозуміти, як Інтервальний тип даних PostgreSQL працює.
У прикладі нижче ми спробуємо знайти час за 2 години 30 хвилин до біля поточний час минулого року ; ми будемо використовувати такі команди:
SELECT now(), now() - INTERVAL '6 months 2 hours 30 minutes' AS '2 hours 30 minutes before last year';
Вихід
Після виконання наведеної вище команди ми отримаємо наведений нижче результат, який відображається 2 години 30 хвилин до минулого року :
Ми побачили основний приклад інтервального типу даних і зрозуміли, як він працює. Тепер ми побачимо формат введення та виведення інтервальні значення.
По-перше, ми розберемося Значення інтервалу PostgreSQL для формату введення :
Інтервальний формат введення PostgreSQL
У PostgreSQL ми маємо наступне докладний синтаксис, який допомагає нам записати значення інтервалів:
quantity unit [quantity unit...] [direction]
Ми маємо наведені нижче параметри, які використовуються у наведеному вище синтаксисі:
Параметр | опис |
---|---|
кількість | А кількість є числом, яке також приймає такі знаки, як + або - |
одиниця | The одиниця може бути будь-яким тисячоліття, століття, десятиліття, рік, місяць, тиждень, день, година, хвилина, секунда, мілісекунда, мікросекунда, або абревіатура може бути наступною y, m, d тощо. і форми множини можуть бути місяці, дні і т.д. |
напрямок | The напрямок параметр може бути тому або порожній рядок. |
Примітка. Наведений вище синтаксис також використовується для формату виведення інтервалів і відомий як postgres_verbose.
У наведеному нижче прикладі ми відобразимо деякі значення інтервалів, де ми використовуємо багатослівний синтаксис :
INTERVAL '1 year 5 months 5 days'; INTERVAL '1 weeks ago';
Формат інтервалів ISO 8601
Крім докладного синтаксису вище, щоб записати значення інтервалів за допомогою Час ISO 8601 інтервалів, PostgreSQL надає нам два шляхи, а саме:
Формат позначок для ISO 8601 такий:
P quantity unit [ quantity unit ...] [ T [ quantity unit ...]]
У наведеному вище форматі значення інтервалу істотно починається з літера П , і літера Т використовується для визначення одиниця часу доби .
У таблиці нижче показано Інтервал ISO 8601 скорочення підрозділів:
Абревіатура | опис |
---|---|
І | років |
М | Місяці (для дати) |
IN | тижнів |
Д | днів |
Х | години |
М | Хвилини (за часову частину) |
С | секунд |
Примітка. M може бути місяцями або хвилинами залежно від того, чи стоїть вона до літери T чи після неї.
Давайте подивимося на приклад Позначення ISO 8601 формат для нашого кращого розуміння:
The Формат позначок ISO 8601 можна записати для інтервалу 5 років 4 місяці 3 дні 2 години 1 хвилина 1 секунда :
P5Y4M3DT2H1M1S
І альтернативна форма ISO 8601 як показано нижче:
P [ years-months-days ] [ T hours:minutes:seconds ]
І це також починається з буква П і буква Т, який розколює час і дата частини значення інтервалу.
Наприклад, Альтернативна форма ISO 8601 можна написати для 5 років 4 місяці 3 дні 2 години 1 хвилина 1 секунда, як показано нижче:
P0005-04-03T02:01:01
Інтервальний вихідний формат PostgreSQL
Інтервальний формат вихідних значень інтервалів PostgreSQL можна встановити за допомогою НАБІР інтервальний стиль команду, як ми можемо бачити в прикладі нижче:
SET intervalstyle = 'iso_8601';
PostgreSQL містить чотири різні вихідні формати, наприклад:
Примітка. Для форматування значень інтервалів PostgreSQL за замовчуванням використовує стиль Postgres.
Давайте подивимося на приклад нашого кращого розуміння:
Команда нижче використовується для відображення 5 років 4 місяці 3 дні 2 години 1 хвилина 1 секунда у чотирьох різних вихідних форматах:
Для формату виводу ISO_8601
У команді нижче ми це зробимо НАБІР в інтервальний стиль як iso_8601 для вищезгаданого значення інтервалу:
SET intervalstyle = 'iso_8601'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minute 1 second';
Вихід
Після виконання наведеної вище команди ми отримаємо наведений нижче результат, який представляє iso_8601 інтервальний вихідний формат:
Для формату виводу postgres_verbose
У команді нижче ми це зробимо НАБІР в інтервальний стиль як postgres_verbose для вищезгаданого значення інтервалу:
SET intervalstyle = 'postgres_verbose'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Вихід
Ми отримаємо наведений нижче результат після виконання наведеної вище команди, яка показує postgres_verbose інтервальний вихідний формат:
завантажити відео з youtube на vlc
Для вихідного формату Postgres
У команді нижче ми це зробимо НАБІР в інтервальний стиль як Postgres для вищезгаданого значення інтервалу:
SET intervalstyle = 'postgres'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Вихід
Ми отримаємо наведений нижче результат після успішного виконання команди вище, яка показує Postgres інтервальний вихідний формат:
Для стандартного формату виводу Sql
У команді нижче ми це зробимо НАБІР в інтервальний стиль як sql_standard для вищезгаданого значення інтервалу:
SET intervalstyle = 'sql_standard'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Вихід
Ми отримаємо наведений нижче результат після успішного виконання команди вище, яка представляє sql_standard інтервальний вихідний формат:
Зміна інтервалу PostgreSQL на рядок
Ми можемо використовувати TO_CHAR() функція для зміни значення інтервалу на рядок.
Синтаксис для зміни інтервалу PostgreSQL на рядок
TO_CHAR(interval,format)
The Функція TO_CHAR(). приймає перша заява як значення інтервалу і ще один як формат і отримує рядок, що відображає інтервал у певному форматі.
У наведеному нижче прикладі ми будемо використовувати функцію TO_CHAR(), яка перетворює інтервал PostgreSQL у рядкове значення:
SELECT TO_CHAR( INTERVAL '15h 15m 15s','HH24:MI:SS' );
Вихід
Після успішного виконання команди вище ми отримаємо наступний результат:
Оператори та функції, пов’язані з інтервалами PostgreSQL
Інтервальні оператори
Ми можемо використовувати наступне +, -, * і т. д. арифметичний оператор щоб отримати значення інтервалів.
Для кращого розуміння розглянемо приклад нижче:
У наступній команді ми будемо використовувати арифметичний оператор (+) за допомогою інтервального типу даних PostgreSQL:
SELECT INTERVAL '1h 50m' + INTERVAL '5m';
Вихід
Ми отримаємо наведений нижче результат, реалізувавши наведену вище команду, як показано нижче:
У наступній команді ми будемо використовувати арифметичний оператор (-) за допомогою інтервального типу даних PostgreSQL:
SELECT INTERVAL '3h 50m' - INTERVAL '30m';
Вихід
Виконавши наведену вище команду, ми отримаємо наступний результат:
У наступній команді ми будемо використовувати арифметичний оператор (*) за допомогою інтервального типу даних PostgreSQL:
SELECT 400 * INTERVAL '5 minute';
Вихід
Виконавши наведену вище команду, ми отримаємо наступний результат:
Вилучення даних з інтервалу PostgreSQL
Ми можемо використовувати ВИПИСИ() функція для вилучення полів із значення інтервалу, наприклад, рік, місяць, число тощо .
Синтаксис для вилучення даних з інтервалу PostgreSQL
бази даних
EXTRACT(field FROM interval)
У наведеному вище синтаксисі ми можемо використовувати рік, місяць, число, година, хвилини і т.д. у полі параметр.
The екстракт функція повертає значення типу подвійної точності, якщо ми хочемо отримати з інтервалу.
У наступному прикладі ми будемо використовувати ВИПИСИ() функція для отримання значення подвійної точності.
SELECT EXTRACT (MINUTE FROM INTERVAL '2 hours 30 minutes' );
Вихід
Після успішного виконання наведеної вище команди ми отримаємо наведений нижче вихід, який відображає частина дати для подвійної точності значення, як показано нижче:
Налаштування значень інтервалів PostgreSQL
У нас дві функції, justify_days і justify_hours у PostgreSQL, що дозволяє нам змінювати інтервал 24 години розглядати як одного дня і інтервал 30-денний розглядати як один місяць .
Давайте подивимося приклад, щоб зрозуміти, як ми налаштовуємо значення інтервалів PostgreSQL:
У наступній команді ми будемо використовувати Функції justify_days і justify_hours:
SELECT justify_days(INTERVAL '30 days'), justify_hours(INTERVAL '24 hours');
Вихід
Після виконання наведеної вище команди ми отримаємо наступний результат, який відображає інтервал 30 днів як один місяць і інтервал 24 години як один день :
Крім того, justify_interval функція регулює значення інтервалу за допомогою justify_days і justify_hours з доданими змінами знака:
У наступному прикладі ми використаємо функцію justifiy_interval із командою SELECT:
SELECT justify_interval(interval '6 months -1 hour');
Вихід
Після виконання наведеної вище команди ми отримаємо наступний результат:
Огляд
В Інтервальний тип даних PostgreSQL ми вивчили такі теми:
- The Інтервальні дані PostgreSQL тип використовується для зберігання та розгортання періоду в роки, місяці, дні, години, хвилини, секунди.
- Ми використовували різні Інтервальні функції , наприклад, NOW(), TO_CHAR(), для покращення значень інтервалів із конкретної таблиці.
- Значення інтервалів PostgreSQL мають обидва вхід і вихід інтервальний формат.
- Ми можемо налаштувати значення інтервалів PostgreSQL за допомогою функції justify_days(), justify_hours, justify_interval().
- Ми можемо використовувати ВИПИСИ() функція для отримання значень полів інтервалу.