ПостгреСКЛ

ПостгреСКЛ То_цхар временска ознака са временском зоном

ПостгреСКЛ То_цхар временска ознака са временском зоном

ПостгреСКЛ методе форматирања укључују корисну збирку алата за превођење различитих типова података (датум / време, цео број, покретна тачка, нумерички) у форматиране низове и превођење форматираних низова натраг у јединствене типове података. Од сада, понекад морамо претворити и временске зоне. Време се увек бележи у УТЦ у ПостгреСКЛ временским ознакама за образац података временске зоне, али се подразумевано приказује у прегледачу, сесији или локалном времену корисника. Једна од његових помоћних функција на које смо се ослонили је метода ТО_ЦХАР (), која омогућава временске ознаке и временске ознаке са временском зоном, између осталих образаца, и омогућава вам да распоредите делове временске ознаке како желите. Временска ознака, двострука прецизност, трајање, број или нумеричка вредност могу се претворити у низ методом ПостгреСКЛ ТО_ЦХАР (). Изгледа да постоји метода са једним аргументом, 'то_тиместамп', која узима аргумент двоструке прецизности и трансформише се из Уник епохе у временску марку користећи временску зону. У овом посту ћемо вам показати како да учините нешто поводом овога. Хајде да прво детаљније погледамо то_цхар ().

Синтакса:

Општа синтакса функције то_цхар () је следећа:

>> То_цхар (израз, формат);

Метода ТО_ЦХАР () у ПостгреСКЛ-у треба две тврдње:

У ПостгреСКЛ-у су доступна два типа временских жигова:

И овде је проблем: стандардни образац података о временској ознаци не зна за временске зоне. И то је неопходност СКЛ-а (како се то могло догодити чини се изван). Наш главни фокус је научити временску ознаку то_Цхар () са временском зоном. Да бисте започели рад на ПостгреСКЛ-у помоћу функције 'то_цхар ()', отворите љуску командне линије ПостгреСКЛ и доставите вредности параметара за обавезни сервер, базу података, број порта, корисничко име и лозинку. Оставите ова разматрања неиспуњеним ако требате потрошити задане задате параметре као што је приказано на доњој слици.

То_цхар () За низ низа

Да бисте разумели концепт функције то_Цхар () помоћу временске ознаке са временском зоном, прво морате испробати пример бројева низова. Дакле, имамо број '1897' и претворићемо га у '9999.99 'формат користећи упит у наставку. Из доњег излаза можете видети да је број низа претворен у наведени формат.

>> ОДАБЕРИ то_цхар (1897, '9999.99 ');

Ево још једне илустрације за конверзију. Овога пута претворили смо број у други формат који садржи „зарез“. Знак 'Г' користиће се за одређивање зареза.

>> ОДАБЕРИ то_цхар (367.78, '9Г999.99 ');

То_цхар временска ознака са временском зоном

Да бисмо разумели временску марку са концептом временске зоне, размотримо једноставан пример. Претпоставимо да се налазите у 'Пакистану', па ваша временска зона тренутно мора бити 'ПКТ'.

Пример 01:

Покушајмо да дохватимо тренутну временску ознаку у СЕЛЕЦТ упиту док је претварамо у формат Дате-тиме, као што је приказано у доњем упиту. Термин „ТЗ“ користи се за враћање тренутне временске зоне. Излаз приказује дан, датум, време и временску зону.

>> ОДАБЕРИТЕ то_цхар (ЦУРРЕНТ_ТИМЕСТАМП, 'Дан пон, дд, гггг ХХ12: МИ АМ (ТЗ)');

Променимо временску зону у „Европа / Рим“.

>> СЕТ ТимеЗоне = 'Европа / Рим';

Добићете другачије време, датум и временску зону када испробате исти СЕЛЕЦТ упит, као што је приказано.

Пример 02:

Када наведете временску зону у СЕЛЕЦТ упиту, тада излаз неће приказивати тренутну временску зону према доњем излазу.

>> ОДАБЕРИТЕ то_цхар (ТЕКУЋИ ВРЕМЕНСКИ КАМП У ВРЕМЕНСКОЈ ЗОНИ 'Азија / Јерусалим', 'ииии ХХ12: МИ АМ (ТЗ)');

Пример 03:

Направимо брзу табелу под називом „време“ са два поља. Један је типа ТИМЕСТАМП, а други је ТИМЕСТАМПТЗ.

>> СТВОРИ ТАБЕЛУ време (без временске зоне ТИМЕСТАМП, са временском зоном ТИМЕСТАМПТЗ);

Сада провјеримо тренутну временску зону коју смо користили у нашем систему помоћу наредбе СХОВ у љусци на следећи начин:

>> ПОКАЖИ временску зону;

Сада морате да убаците тренутне вредности датума и времена тренутне временске зоне коју сте користили на уређају у табелу „време“ помоћу функције „сада ()“ као што је приказано испод.

>> УМЕСТИ У ВРИЈЕДНОСТИ времена (сада (), сада ());

Сада можете да преузмете запис из табеле 'време' помоћу упита СЕЛЕЦТ као испод. Колона „без_временске зоне“ приказује тренутни датум и време без временске зоне, док колона „витх_тимезоне“ приказује локално време са временском зоном у потпуности.

>> ОДАБЕРИ * ОД времена;

Променимо временску зону у „УС / ЕАСТЕРН“ из упита у наставку.

>> ПОДЕШИТЕ ​​ВРЕМЕНСКУ ЗОНУ СЕСИЈЕ 'УС / ЕАСТЕРН';

Сада поново проверимо табелу. Видећете како је приказана вредност колоне 'витх_тимезоне' према временској зони 'УС / ЕАСТЕРН', али је вредност 'витхоут_тимезоне' иста као и пре.

>> ОДАБЕРИТЕ * ОД времена;

Пример 04:

Имајмо још неколико примера за методу то_цхар (). Претпоставимо исто горње табеле „време“. Претворићемо вредност колоне 'витхоут_тимезоне' у низ који се састоји од сати, минута, секунди и временске зоне. Покушајмо са СЕЛЕЦТ упитом методом то_цхар () за претварање вредности колоне 'витхоут_тимезоне'. У нашем упиту смо споменули „ТЗ“, али неће приказати временску зону, јер се вредност колоне не састоји од временске зоне. Наведена наредба даје излаз:

>> ОДАБИР то_цхар (без_временске зоне, 'ХХ12: МИ: СС ТЗ') ИЗ времена;

Покушајмо сада исти упит у случају друге колоне 'витх_тимезоне' да га претворимо у низ сати, минута, секунди и временске зоне. Овај пут ће приказати и временску зону са временом користећи упит у наставку.

>> ОДАБЕРИТЕ то_цхар (витх_тимезоне, 'ХХ12: МИ: СС ТЗ') ИЗ времена;

Закључак:

Будући да проблем са / без временске зоне утиче не само на партиционирање табеле, препоручујем да користите тип временске зоне кад год је то могуће. Скоро све смернице су дискутовале о томе како извршити чишћење зависно од времена у ПостгреСКЛ-у користећи локално радно време. Правилно решење осетљиво на временску зону додаје мало компликација, али би вас у будућности могло спасити од невоља.

Како снимити и стримовати своју играћу сесију на Линук-у
У прошлости се играње игара сматрало само хобијем, али с временом је играчка индустрија забележила огроман раст у погледу технологије и броја играча. ...
Најбоље игре за ручно праћење
Оцулус Куест је недавно представио сјајну идеју ручног праћења без контролера. Са све већим бројем игара и активности које извршавају подршку формално...
Како приказати ОСД прекривач у целом екрану Линук апликација и игара
Играње игара преко целог екрана или коришћење апликација у режиму целог екрана без ометања може вам одсећи релевантне системске информације видљиве на...