Darbas su TO_CHAR()
Nesvarbu, ar norite gauti dabartinę datą savo PostgreSQL užklausoje, ar dirbti su datomis lentelėje, labai svarbu suprasti, kaip konvertuoti datą į eilutę. Galbūt norite gražesnio datos formato kaip išvesties arba išgauti datos dalį konvertavus ją į eilutę. Kad ir kaip būtų, TO_CHAR() yra ideali funkcija.
Be to, TO_CHAR() siūlo daugybę formatavimo parinkčių, kurias galite naudoti. Norėdami gauti norimą rezultatą, galite derinti skirtingas parinktis.
TO_CHAR() naudoja tokią sintaksę:
TO_CHAR(išraiška, formatas);
Išraiška yra laiko žyma, kurią norite konvertuoti naudodami nurodytą formatą.
Toliau pateikiami dažniausiai naudojami TO_CHAR() formatai:
1 metai
YYYY – Rodo metus 4 skaitmenimis.
Y,YYY – Jis naudoja kablelį, kad pavaizduotų keturis metų skaitmenis.
YYY – Rodo tik tris paskutinius nurodytų metų skaitmenis.
YY – Rodo tik du paskutinius nurodytų metų skaitmenis.
IR - Rodo tik paskutinį nurodytų metų skaitmenį.
2. Mėnuo
MĖNESIS – Mėnesio pavadinimas vartojamas didžiosiomis raidėmis.
mėnuo – Mėnesio pavadinimas vartojamas mažosiomis raidėmis.
MANO - Mėnuo sutrumpinamas didžiosiomis raidėmis.
mano - Mėnuo sutrumpinamas ir rašomas didžiosiomis raidėmis.
MM – Rodo tik mėnesio skaičių.
3. Diena
DIENA – Dienos pavadinimas didžiosiomis raidėmis.
diena - Dienos pavadinimas mažosiomis raidėmis.
TU - Jis sutrumpina dienos pavadinimą ir rašo didžiosiomis raidėmis.
Tie – Dienos pavadinimas sutrumpinamas ir rašomas didžiosiomis raidėmis.
tu- Mažosiomis raidėmis sutrumpintas dienos pavadinimas.
4. Laikas
HH – Paros valanda
HH12 – 12 valandų formatas
HH24 – 24 valandų formatas
MANO - Minutės
SS – sekundės
Pateikti formatai nėra vieninteliai TO_CHAR() formatai, kuriuos galite naudoti, bet jie yra dažniausiai naudojami. Šiame įraše pateiksime jų naudojimo pavyzdį.
1 pavyzdys: datos konvertavimas į eilutę
Šiame pavyzdyje kaip išraišką įvedame tikslinę datą ir nurodome, kokiu formatu ją konvertuoti. Šioje išvestyje parodyta, kaip konvertuojame „2023-11-29“ į lengviau skaitomą ir suprantamą eilutę:
2 pavyzdys: darbas su dabartine data
„PostgreSQL“ CURRENT_DATE nurodo tos konkrečios dienos datą.
Tarkime, kad norime jį konvertuoti į eilutę. Kaip išraišką turime naudoti tik CURRENT_DATE ir tada nurodyti formatą. Dabar savo dabartinę datą gausite kaip eilutę.
Vis dėlto galite pakeisti formatą į kitą, kad pasiektumėte savo tikslą. Pavyzdžiui, jei norime rodyti tik datą, mėnesį ir metus, komandą sureguliuojame taip:
TO_CHAR() grožis yra tas, kad galite derinti skirtingus formatus, kad sukurtumėte galutinį, kurį norite naudoti savo pasimatymui. Eikime toliau ir dirbkime su laiko žymomis.
3 pavyzdys: darbas su laiko žyma
Iki šiol dirbome tik su datomis. Tačiau jei datoje yra laikas, galite jį išgauti nurodydami idealų formatą.
Štai pavyzdys, kai nurodome gauti laiką 24 valandų formatu iš pateiktos laiko žymos, nepateikdami datos:
12 valandų laiko formatui naudojame HH12, o ne HH24. Pažvelkite į šį pavyzdį:
Galiausiai, jei norime iš pateiktos laiko žymos išgauti datą ir laiką, tereikia pridėti idealų formatą, kurį norime naudoti. Čia nurodome naudojant HH12:MI:SS laiką ir pridedame skyriklį. Toliau nurodome, kad datai reikia naudoti „dd, Month, yyyy“.
Mūsų galutinis rezultatas yra toks:
4 pavyzdys: Darbas su lentele
Visi formatai, kuriuos aptarėme ir paminėjome, gali būti taikomi PostgreSQL lentelei. Šiame pavyzdyje turime lentelę pavadinimu „užsakymai“, kurioje yra stulpelis „data“. Norėdami pasirinkti elementus iš jo ir naudoti TO_CHAR () stulpelyje „data“, vykdome komandą, kaip parodyta toliau:
Galite naudoti bet kokį pageidaujamą formatą. Čia yra ta pati komanda, bet su skirtingu datos formatu:
Jei norime datos stulpelyje rodyti tik savaitės dieną ir mėnesį, štai kaip suderiname komandą:
Nedvejodami nurodykite bet kokį idealų formatą, kurį norite naudoti savo atveju.
Išvada
TO_CHAR() yra patogi PostgreSQL funkcija, leidžianti vartotojams konvertuoti laiko žymes ir kitus pažodinius žodžius į eilutes. Šis įrašas parodo skirtingus būdus, kuriais galite naudoti TO_CHAR() datoms. Pateikėme įvairių pavyzdžių, kad galėtume greitai suvokti turinį. Tikimės, kad TO_CHAR() daugiau jums netrukdys.