ПостгреСКЛ

Постгрескл Генерате_Сериес за стварање серије датума

Постгрескл Генерате_Сериес за стварање серије датума

Морате бити упознати са уносом података у било ком систему управљања базама података. Док уносите податке, можда нећете имати времена и требате да занемарите празнине у подацима или желите неку доследну серију записа. У овој ситуацији, ПостгреСКЛ генератор_сериес је применљив за постизање жељеног циља. Као што само име говори, механизам ове функције садржи 2 или 3 улаза. и.е., генерирај_серију омогућава вам генерисање низа записа са почетном тачком, завршном тачком и вредностом повећања (опционално). Углавном ради на два типа података. и.е., Цели бројеви и временске ознаке. Да би се креирала секвенца датума, функција генерирања_серије користи се на различите начине.

Синтакса:

>> Генериши_серију ([старт], [стоп], [опционално корак / интервал]);

Синтакса упита је следећа:

Хајде да имамо идеју о томе како функција генерирај_серије () може да ради. Испод су неки основни примери. Да бисмо разумели концепт ове функције, морамо да инсталирамо и отворимо постгреСКЛ љуску командне линије (пскл).

Након успешне конфигурације и пружања лоцалхоста, имена базе података, броја порта и лозинке, можемо проћи кроз било који упит на пскл-у.

Пример 01: Генериши_серију помоћу ДАТЕ плус целобројни оператор

Следећи упит садржи уграђену функцију „ДАТУМ“ за преузимање тренутног датума. Док је „а“ оператор који је обезбеђен. Функција овог оператора је да дода тај одређени број (интервал) у део дана дана. Или другим речима, са одређеним интервалима, дани се померају и приказују у датуму. У излазу ће се сваки дан додавати интервал „9“, тј.е., 9 + 9 = 18, па 27, и тако даље, док се не постигне збир 40.

>> ОДАБЕРИТЕ цуррент_ДАТЕ + с.а АС датира из Генерате_сериес (0,40,9) АС с (а);

Пример 02: Коришћење тренутног датума за генерисање серија датума

За генерисање серија датума уз помоћ тренутног датума користимо функцију нов () која аутоматски узима тренутни датум из система. Можете видети да одговарајући излаз приказује датум до 4 дана. То је зато што смо ограничили извршење додавањем 4 дана на тренутни датум. Као што смо обезбедили интервал интервала до 1 дана, тако ће се сваки датум увећавати са 1 додавањем у дану

>> изаберите * из генерирај_серију (сада (), сада () + '4 дана', '1 дан');

Пример 03: Генерисање серија датума помоћу временских жигова

Временске ознаке сати: Ова функција такође користи тип података временских жигова. Временска ознака је у основи низ знакова који пружа време и датум повезаног дана. Одговарајућа функција олакшава кориснику давање датума између оба датума која смо предвидели у упиту. Добија се листа временских жигова од 7. до 11. са једном временском ознаком на сваких 5 сати.

>> изаберите * из цреате_сериес ('2021-3-7 00:00' :: тиместамп, '2021-3-11 12:00', '5 хоурс');

Упит, као што је горе поменуто, такође се користи за додавање минута и секунди са сатима ради добијања боље временске ознаке између дана релевантне временске ознаке.

Временске ознаке дана: У прекораченом примеру, видели смо да се временска ознака користи за приказ датума између два одговарајућа датума која смо обезбедили са променом у сатима увећаним за 5. У тренутном примеру видећемо временску ознаку у данима. Дани се увећавају са 2 јер смо покренули дводневни јаз у одређеном резултату.

>> селецт * фром цреате_сериес ('2021-03-01' :: тиместамптз, '2021-03-19' :: тиместамптз, '2 дана');

Пример 04: Генерисање одређених датума у ​​месецу помоћу дате_трунц

Први дан у месецу

Ако желимо да генеришемо први датум текућег месеца, користићемо доле додат упит.Овде се користи посебна функција дате_трунц, која скраћује датум до задате прецизности.и.е. Сада()

>> изаберите дате_трунц ('месец', сада ());

      Последњи дан у месецу

Исти приступ дате_трунц генерисаће последњи дан у месецу.

>> изаберите дате_трунц ('месец', сада ()) + '1 месец' :: интервал - '1 дан' :: интервал као крај_месеца;

Средином месеца

Средина месеца добија се променом претходног упита. Користићемо средњу функцију да бисмо постигли одговарајући циљ. Или ћемо одузети 17 дана од последњег.

>> изаберите дате_трунц ('месец', сада ()) + '1 месец' :: интервал - '17 дана ':: интервал као средина_ месеца;

Пример 05: Генерисање датума помоћу података везаних за календар

Ево примера коришћења података календара. Упознаћемо преступну годину, тј.е., укупно дана у месецу фебруару.„Т“ означава тачно значи да је година преступна, а за „ф“ није тачно „дов“ представља дане у недељи. Колона „Фебруар“ садржи укупан број дана у месецу. „Дан“ означава Јанов први дан сваке године. Према истраживањима, недеље ИСО-а почињу од понедељка, а прва недеља у години садржи 5. јануара године.

>> изаберите датум :: датум, екстракт ('исодов' од датума) као дов, то_цхар (датум, 'ди') као дан, екстракт ('исо година' од датума) као "исо година", екстракт ('недеља' од датума) као недеља, извод ('дан'од (датум + интервал' 2 месеца - 1 дан ')) као феб, извод (' година 'од датума) као година, извод (' дан 'од (датум + интервал' 2 месеца - 1 дан ')) = 29како је скок од генерирај_серију (датум' 2010-01-01 ', датум' 2020-03-01 ', интервал' 1 година ') као т (датум);

Исодов је „ИСО“ стандардни дан у недељи. Упит ће се извршити од 2010. до 2020. током манипулације сваког месеца, недеље и дана у години.

Пример 06: Генерирање серија одређених датума и броја дана у седмици

У овом упиту добићемо датуме и бројеве дана филтрирајући дане у недељи. Нумерички ћемо размотрити дане у недељи. На пример, почев од 0 до 6. Где је 0 недеља, а 6 субота. У овом упиту видећете да смо применили услов за уношење датума и бројева дана који нису у 2 и 5. На пример, 20. фебруара била је субота, па је број који се појавио 6.

>> са данима као (одаберите дд, извуци (ДОВ из дд) дв из генерирај_серије ('2021-02-20' :: датум, '2021-03-05' :: датум, '1 дан' :: интервал) дд ) изаберите * из дана када дв није у (2,5);

Закључак

Чланак, као што је горе поменуто, покрива већину основних функционалности повезаних са генерисањем серија за креирање серија датума. Детаљни примери о којима се говори у сваком аспекту толико су значајни да ће ескалирати знање вашег члана.

Леви тастер миша не ради у оперативном систему Виндовс 10
Ако уз преносни рачунар или стони рачунар користите наменски миш, али тастер миша не ради у оперативном систему Виндовс 10/8/7 из неких разлога, ево н...
Курсор скаче или се насумично помера док куцате у оперативном систему Виндовс 10
Ако откријете да курсор миша скаче или се сам помера, аутоматски, насумично док куцате на Виндовс преносном рачунару или рачунару, неки од ових предло...
Како да обрнете смер померања миша и додирних табли у оперативном систему Виндовс 10
Миш и Тоуцхпадрачунарство не само да олакшава рад, већ и ефикасније и мање времена. Не можемо замислити живот без ових уређаја, али ипак је чињеница д...