PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

3 Fungsi yang Mendapatkan Hari, Bulan, dan Tahun dari Tanggal di PostgreSQL

PostgreSQL memberi kita beberapa cara untuk mendapatkan hari, bulan, dan tahun dari sebuah tanggal.

Tiga fungsi yang langsung terbayang adalah; DATE_PART() , EXTRACT() , dan TO_CHAR() .

EXTRACT()

EXTRACT() function mengambil subbidang seperti tahun, bulan, jam, atau menit, bagian dari nilai tanggal/waktu.

Contoh:

SELECT EXTRACT(YEAR FROM date '2035-10-30');

Hasil:

2035

Kami dapat mengembalikan bagian tanggal yang berbeda di bidang terpisah dengan membuat tiga panggilan terpisah ke fungsi ini:

SELECT 
    EXTRACT(DAY FROM date '2035-10-30') AS "Day",
    EXTRACT(DOW FROM date '2035-10-30') AS "DOW",
    EXTRACT(DOY FROM date '2035-10-30') AS "DOY",
    EXTRACT(MONTH FROM date '2035-10-30') AS "Month",
    EXTRACT(YEAR FROM date '2035-10-30') AS "Year";

Hasil:

 Day | DOW | DOY | Month | Year 
-----+-----+-----+-------+------
  30 |   2 | 303 |    10 | 2035

Di sini, saya mengembalikan hari dalam sebulan, hari dalam seminggu, hari dalam setahun, bulan, dan tahun dari tanggal.

Lihat Cara Kerja Extract() di PostgreSQL untuk contoh lainnya, dan daftar nama bidang yang dapat ditampilkan oleh fungsi ini.

DATE_PART()

DATE_PART() fungsi setara dengan EXTRACT() , tetapi dengan sintaks yang sedikit berbeda.

SELECT 
    DATE_PART('DAY', date '2035-10-30') AS "Day",
    DATE_PART('DOW', date '2035-10-30') AS "DOW",
    DATE_PART('DOY', date '2035-10-30') AS "DOY",
    DATE_PART('MONTH', date '2035-10-30') AS "Month",
    DATE_PART('YEAR', date '2035-10-30') AS "Year";

Hasil:

 Day | DOW | DOY | Month | Year 
-----+-----+-----+-------+------
  30 |   2 | 303 |    10 | 2035

Fungsi ini mengharuskan argumen pertama diberikan sebagai string, dan koma memisahkan kedua argumen sebagai ganti FROM kata kunci.

TO_CHAR()

TO_CHAR() Fungsinya lebih fleksibel, karena dapat digunakan untuk menyediakan output yang lebih beragam. Misalnya, kita dapat menggunakan fungsi ini untuk menampilkan hari, bulan, dan tahun dalam satu bidang:

SELECT TO_CHAR(date '2045-12-02', 'Day, DDth Month YYYY');

Hasil:

 Saturday , 02nd December  2045

Kita bisa menggunakan fm pengubah template untuk menekan padding apa pun yang mungkin diterapkan:

SELECT TO_CHAR(date '2165-04-01', 'fmDay, fmDDth fmMonth YYYY');

Hasil:

 Monday, 1st April 2165

Perhatikan juga bahwa th pengubah template cukup pintar untuk mengetahui apakah st , nd , rd , atau th harus ditambahkan.

Berikut adalah contoh yang menggunakan berbagai panggilan ke TO_CHAR() untuk menampilkan berbagai bagian tanggal di bidang terpisah:

SELECT 
    TO_CHAR(date '2165-04-01', 'fmDay') AS "Day",
    TO_CHAR(date '2165-04-01', 'fmDD') AS "DD",
    TO_CHAR(date '2165-04-01', 'fmMonth') AS "Month",
    TO_CHAR(date '2165-04-01', 'YYYY') AS "YYYY";

Hasil:

  Day   | DD | Month | YYYY 
--------+----+-------+------
 Monday | 1  | April | 2165

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Batasan NOT NULL pada sekumpulan kolom

  2. Cara Mengotomatiskan Replikasi dan Failover PostgreSQL 12 dengan repmgr – Bagian 2

  3. PostgreSQL:Pencarian Teks Lengkap - Bagaimana cara mencari sebagian kata?

  4. Kueri untuk menghitung nilai yang berbeda dalam rentang tanggal bergulir

  5. Lambat LEFT JOIN di CTE dengan interval waktu