PostgreSQL

Позначка часу PostgreSQL To_char із часовим поясом

Позначка часу PostgreSQL To_char із часовим поясом

Методи форматування PostgreSQL включають корисну колекцію інструментів для перекладу різних типів даних (дата / час, ціле число, плаваюча крапка, числові) у відформатовані рядки та переклад відформатованих рядків назад до унікальних типів даних. Відтепер іноді нам також потрібно конвертувати часові пояси. Час завжди записується в UTC у позначках часу PostgreSQL для форми даних часового поясу, але за замовчуванням відображається в браузері, сесії або місцевому часі користувача. Однією з його допоміжних функцій, на яку ми поклались, є метод TO_CHAR (), який дозволяє, крім інших форм, мітити часові позначки та часові позначки з часовим поясом і дозволяє упорядковувати фрагменти часової позначки, як вам подобається. Відмітка часу, подвійна точність, тривалість, число або числове значення можуть бути перетворені у рядок за допомогою методу PostgreSQL TO_CHAR (). Здається, існує метод з одним аргументом, 'to_timestamp', який приймає аргумент подвійної точності і перетворює з епохи Unix у мітку часу, використовуючи часовий пояс. У цій публікації ми покажемо вам, як щось зробити з цим. Давайте спочатку розглянемо докладніше to_char ().

Синтаксис:

Загальний синтаксис функції to_char () такий:

>> To_char (вираз, формат);

Метод TO_CHAR () у PostgreSQL потребує двох тверджень:

У PostgreSQL доступні два типи позначок часу:

І ось у чому проблема: стандартна форма даних мітки часу не знає часових поясів. І це необхідність SQL (як це могло статися, здається, не тільки). Наше головне завдання - навчитися часовій позначці to_Char () із часовим поясом. Щоб розпочати роботу над PostgreSQL за допомогою функції 'to_char ()', відкрийте оболонку командного рядка PostgreSQL і доставіть значення параметрів для обов'язкового сервера, бази даних, номера порту, імені користувача та пароля. Залиште ці міркування незаповненими, якщо вам потрібно використовувати параметри, призначені за замовчуванням, як показано на зображенні нижче.

To_char () Для рядкового номера

Щоб зрозуміти концепцію функції to_Char () за допомогою позначки часу з часовим поясом, спочатку спробуйте приклад рядкових номерів. Отже, ми маємо число '1897', і ми перетворимо його на '9999.У форматі 99 'із використанням наведеного нижче запиту. З вихідних даних видно, що номер рядка перетворено у вказаний формат.

>> ВИБЕРІТЬ to_char (1897, '9999.99 ');

Ось ще одна ілюстрація для перетворення. Цього разу ми перетворили число в інший формат, маючи в ньому "кому". Символ 'G' буде використовуватися для вказівки коми.

>> ВИБЕРІТЬ to_char (367.78, '9G999.99 ');

To_char Мітка часу з TimeZone

Щоб зрозуміти позначку часу з концепцією часового поясу, розглянемо простий приклад. Припустимо, ви перебуваєте в "Пакистані", тому ваш часовий пояс зараз має бути "ПКТ".

Приклад 01:

Спробуємо отримати поточну мітку часу в запиті SELECT, перетворюючи її у формат Дата-час, як показано в запиті нижче. Термін "TZ" використовується для повернення поточного часового поясу. На виході відображаються день, дата, час і часовий пояс.

>> ВИБЕРІТЬ to_char (CURRENT_TIMESTAMP, 'Day Mon dd, yyyy HH12: MI AM (TZ)');

Давайте змінимо наш часовий пояс на "Європа / Рим".

>> SET TimeZone = 'Європа / Рим';

Ви отримаєте інший час, дату та часовий пояс при спробі того самого запиту SELECT, як показано.

Приклад 02:

Коли ви вказуєте часовий пояс у запиті SELECT, на виході не відображатиметься поточний часовий пояс відповідно до наведеного нижче виводу.

>> ВИБЕРІТЬ to_char (CURRENT_TIMESTAMP В ЧАСОВУ ЗОНУ 'Азія / Єрусалим', 'yyyy HH12: MI AM (TZ)');

Приклад 03:

Давайте створимо швидку таблицю з назвою 'час' із двома полями. Один типу TIMESTAMP, а інший - типу TIMESTAMPTZ.

>> СТВОРИТИ ТАБЛИЦЮ час (без часового поясу TIMESTAMP, з часовим поясом TIMESTAMPTZ);

Тепер давайте перевіримо поточний часовий пояс, який ми використовуємо в нашій системі, використовуючи команду SHOW в оболонці наступним чином:

>> ПОКАЗАТИ часовий пояс;

Тепер вам потрібно вставити поточні значення дати та часу поточного часового поясу, які ви використовували на своєму пристрої, у таблиці "час", використовуючи функцію "зараз ()", як показано нижче.

>> ВСТАВИТИ В ЗНАЧЕННЯ часу (зараз (), зараз ());

Тепер ви можете отримати запис із таблиці 'time', використовуючи запит SELECT, як показано нижче. У стовпці 'without_timezone' відображаються поточна дата та час без часового поясу, тоді як у стовпці 'with_timezone' повністю відображається місцевий час із часовим поясом.

>> ВИБРАТИ * ВІД часу;

Давайте змінимо часовий пояс на 'US / EASTERN' із наведеного нижче запиту.

>> ВСТАНОВИТИ ЧАСОВУ ЗОНУ СЕСІЇ 'США / СХІД';

А тепер перевіримо таблицю ще раз. Ви побачите, як значення стовпця "with_timezone" відображалося відповідно до часового поясу "US / EASTERN", але значення "without_timezone" те саме, що було раніше.

>> ВИБРАТИ * ВІД часу;

Приклад 04:

Давайте наведемо ще кілька прикладів для методу to_char (). Припустимо те саме "таблиця часу" вище. Ми перетворимо значення стовпця 'without_timezone' у рядок, який складається з годин, хвилин, секунд та часового поясу. Давайте спробуємо запит SELECT, використовуючи метод to_char () для перетворення значення стовпця 'without_timezone'. У нашому запиті ми згадали "TZ", але він не відображатиме часовий пояс, оскільки значення стовпця не складається з часового поясу. Викладена нижче команда дає результат:

>> ВИБЕРІТЬ to_char (без часового поясу, 'HH12: MI: SS TZ') FROM час;

Тепер спробуємо той самий запит у випадку іншого стовпця 'with_timezone', щоб перетворити його на рядок годин, хвилин, секунд та часового поясу. Цього разу він також покаже часовий пояс з часом, використовуючи запит нижче.

>> ВИБЕРІТЬ to_char (with_timezone, 'HH12: MI: SS TZ') FROM час;

Висновок:

Оскільки проблема з / без часового поясу впливає не тільки на розділення таблиці, я рекомендую вам використовувати тип часового поясу, коли це можливо. Майже у всіх керівних принципах обговорювалося, як робити очищення в PostgreSQL, що залежить від часу, за допомогою місцевих годин. Правильне рішення, чутливе до часового поясу, додає мало ускладнень, але може врятувати вас від неприємностей у майбутньому.

Middle mouse button not working in Windows 10
The middle mouse button helps you scroll through long webpages and screens with a lot of data. If that stops, well you will end up using the keyboard ...
How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...
Emulate Mouse clicks by hovering using Clickless Mouse in Windows 10
Using a mouse or keyboard in the wrong posture of excessive usage can result in a lot of health issues, including strain, carpal tunnel syndrome, and ...