PostgreSQL

Kuupäevaseeria loomiseks postgresql Generate_Series

Kuupäevaseeria loomiseks postgresql Generate_Series

Andmete sisestamisega peate olema kursis igas andmebaasi haldussüsteemis. Andmete sisestamise ajal ei pruugi teil aega olla ja peate eirama oma andmete lünki või soovite mõnda järjekindlat kirjete seeriat. Selles olukorras on nõutava eesmärgi saavutamiseks rakendatav PostgreSQL generaator_seeria. Nagu nimigi ütleb, sisaldab selle funktsiooni mehhanism kas 2 või 3 sisendit. i.e., generaator_seeria võimaldab genereerida alguspunkti, lõpp-punkti ja kasvava väärtusega kirjete jada (valikuline). See töötab peamiselt kahel andmetüübil. i.e., Täisarvud ja ajatemplid. Kuupäevade jada loomiseks kasutatakse funktsiooni generaator_seeria erineval viisil.

Süntaks:

>> Generate_series ([algus], [peatus], [valikuline samm / intervall]);

Päringu süntaksi kirjeldus on järgmine:

Olgem aimu, kuidas funktsioon genereerida_seeria () saab toimida. Allpool on toodud mõned elementaarsed näited. Selle funktsiooni kontseptsiooni mõistmiseks peame installima ja avama postgreSQL käsurea kest (psql).

Pärast edukat konfigureerimist ja localhosti, andmebaasi nime, pordi numbri ja parooli pakkumist võime läbi viia kõik psql-i päringud.

Näide 01: genereeri_seeria, kasutades operaatorit DATE pluss täisarv

Järgmine päring sisaldab praeguse kuupäeva toomiseks sisseehitatud funktsiooni “DATE”. Kusjuures a on operaator. Selle operaatori ülesanne on lisada see konkreetne arv (intervall) kuupäeva päeva ossa. Või teisisõnu, konkreetsete intervallidega nihutatakse päevi ja näidatakse kuupäevas. Väljundis lisatakse iga päev intervall “9”, s.t.e., 9 + 9 = 18, siis 27 ja nii edasi, kuni on saavutatud summa 40.

>> VALI praegune_DATE + s.a AS on pärit kuupäevast FROM Generate_series (0,40,9) AS s (a);

Näide 02: Kuupäevaseeria loomiseks praeguse kuupäeva kasutamine

Kuupäevaseeria loomiseks praeguse kuupäeva abiga kasutame funktsiooni now (), mis võtab praeguse kuupäeva süsteemist automaatselt. Näete, et vastav väljund näitab kuupäeva kuni 4 päeva. Seda seetõttu, et oleme täitmist piiranud, lisades praegusele kuupäevale 4 päeva. Kuna oleme määranud intervalliaja 1 päevaks, suurendatakse iga kuupäeva ühe lisamisega päevas

>> vali * loomise_seeria seast (nüüd (), nüüd () + '4 päeva', '1 päev');

Näide 03: Kuupäevaseeria genereerimine ajatemplite abil

Tundide ajatemplid: See funktsioon kasutab ka ajatemplite andmetüüpi. Ajatempel on põhimõtteliselt märkide jada, mis esitab seotud päeva kellaaja ja kuupäeva. Vastav funktsioon hõlbustab kasutajal kuupäevade esitamist mõlema kuupäeva vahel, mida me päringus ennustasime. Saadakse ajamärkide loetelu ajavahemikust 7 kuni 11, iga 5 tunni tagant üks ajatempel.

>> valige * loomise_seeria seast ('2021-3-7 00:00' :: ajatempel, '2021-3-11 12:00', '5 tundi');

Nagu eespool mainitud, kasutatakse päringut ka minutite ja sekundite lisamiseks tundidega, et saada parem ajatempel asjakohase ajatempli päevade vahel.

Päevade ajatemplid: Ületavas näites oleme näinud, et ajatemplit kasutatakse kuupäevade kuvamiseks kahe vastava kuupäeva vahel, mille oleme andnud, muutes tundides, suurendatuna 5-ga. Praeguses näites näeme ajatemplit päevades. Päevi suurendatakse kahega, kuna oleme konkreetses väljundis tekitanud 2-päevase vahe.

>> valige * loendist_sarja ('2021-03-01' :: timestamptz, '2021-03-19' :: timestamptz, '2 päeva');

Näide 04: Kuu kindlate kuupäevade genereerimine, kasutades date_trunc

Kuu esimene päev

Kui tahame luua jooksva kuu esimese kuupäeva, kasutame allpool lisatud päringut.Siin kasutatav eraldiseisev funktsioon on date_trunc, mis lühendab kuupäeva antud täpsusega.i.e. nüüd ()

>> vali date_trunc ('kuu', nüüd ());

      Kuu viimane päev

Sama date_trunc lähenemisviis genereerib kuu viimase päeva.

>> vali date_trunc ('kuu', nüüd ()) + '1 kuu' :: intervall - '1 päev' :: intervall kuu lõpuna;

Kuu keskpaik

Kuu keskpaik saadakse eelmise päringu muutmisega. Vastava eesmärgi saavutamiseks kasutame keskmist funktsiooni. Või lahutame viimasest 17 päeva.

>> vali date_trunc ('kuu', nüüd ()) + '1 kuu' :: intervall - '17 päeva' :: intervall kuu keskpaigana;

Näide 05: Kuupäevade genereerimine kalendriga seotud andmete abil

Siit tuleb näide kalendriandmete kasutamisest. Saame teada liigaastat, s.t.e., veebruari kuu päevad kokku.“T” tähistab tõelist, see tähendab, et aasta on hüppeaasta ja “f” puhul on vale “dow” tähistab nädalapäevi. Veerg „Veebruar” sisaldab kuu päevi kokku. “Päev” tähistab Jaani iga aasta esimest päeva. Uuringute kohaselt algavad ISO-nädalad esmaspäevast ja aasta esimene nädal sisaldab aasta 5. jaanuari.

>> valige kuupäev :: kuupäev, väljavõte ('isodow' alates kuupäevast) dow'na, to_char (kuupäev, 'dy') päevana, väljavõte ('iso aasta' alates kuupäevast) kui 'iso aasta', väljavõte ('nädal') alates kuupäevast) nädalana, väljavõte ("päev" alates (kuupäev + intervall "2 kuud - 1 päev")) veebruarina, väljavõte ("aasta" alates kuupäevast) aasta, väljavõte ("päev" alates (kuupäev + intervall) 2 kuud - 1 päev ')) = 29 kui hüpe generaatorite seeriast (kuupäev' 2010-01-01 ', kuupäev' 2020-03-01 ', intervall' 1 aasta ') kui t (kuupäev);

Isodow on “ISO” standardne nädalapäev. Päringut täidetakse aastatel 2010–2020, samal ajal manipuleerides iga kuu, nädala ja aastapäevaga.

Näide 06: Nädala konkreetsete kuupäevade ja päevade arvu seeria genereerimine

Selles päringus omandame kuupäevad ja päevade numbrid, filtreerides nädala päevi. Arvestame arvuliselt nädalapäevi. Näiteks alates 0 kuni 6. Kus 0 on pühapäev ja 6 on laupäev. Selles päringus näete, et oleme rakendanud tingimust, et tuua kuupäevad ja päevanumbrid, mis pole punktides 2 ja 5. Näiteks 20. veebruaril oli laupäev, nii et ilmunud arv on 6.

>> päevadega nagu (vali dd, väljavõte (DOW dd-st) dw generaatori_seeriast ('2021-02-20' :: date, '2021-03-05' :: date, '1 day' :: intervall) dd ) valige * päevade hulgast, kus dw pole punktis (2,5);

Järeldus

Nagu eespool mainitud, hõlmab artikkel enamikku põhifunktsioonidest, mis on seotud seeriate genereerimisega kuupäevaridade loomiseks. Igas aspektis käsitletud üksikasjalikud näited on nii sisukad, et suurendavad teie vastava artikli teadmisi.

Parimad Linuxi mängupuldi kaardistamise rakendused
Kui teile meeldib mängida Linuxis mänge tavalise klaviatuuri ja hiire sisestussüsteemi asemel mängupuldiga, on teie jaoks mõned kasulikud rakendused. ...
Kasulikud tööriistad Linuxi mängijatele
Kui teile meeldib Linuxis mänge mängida, on tõenäoline, et olete mängukogemuse parandamiseks kasutanud selliseid rakendusi ja utiliite nagu Wine, Lutr...
HD Remastered Games Linuxile, millel pole kunagi varem Linuxi väljalaset olnud
Paljud mängude arendajad ja kirjastajad pakuvad frantsiisi eluea pikendamiseks välja vanade mängude HD-remasteri. Palun fännid, kes soovivad ühilduvus...