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

Memahami Jenis dan Fungsi Tanggal PostgreSQL (berdasarkan Contoh)

Pada artikel ini, kita akan melihat cara bekerja dengan tanggal di PostgreSQL, termasuk berbagai jenis dan format data tanggal, fungsinya, dan cara menanganinya dalam rutinitas sehari-hari Anda. Kami akan menggunakan dbForge Studio untuk PostgreSQL untuk mengilustrasikan contoh.

Anda dapat menggunakan tanggal dan stempel waktu untuk analisis data dan penyimpanan data, karena memungkinkan Anda menentukan kapan suatu peristiwa benar-benar terjadi. Hal yang rumit tentang tanggal adalah bahwa formatnya bervariasi di berbagai negara, sehingga ini bisa menjadi tugas yang cukup menantang bagi pemula dalam manajemen basis data. Tipe data dan format kolom tanggal harus selalu konsisten dengan informasi yang dimasukkan oleh pengguna. Selain itu, Anda harus mengubah format tanggal untuk memenuhi preferensi pengguna Anda. Postgres mampu menangani berbagai format data.

Isi

  • Ikhtisar tipe data TANGGAL PostgreSQL
  • Menggunakan tanggal saat ini sebagai nilai default
  • Fungsi TANGGAL pascagres
  • Menggunakan fungsi SEKARANG() untuk mendapatkan tanggal saat ini
  • Menggunakan fungsi TO_CHAR() – menampilkan nilai tanggal dalam format tertentu
  • Menggunakan operator minus untuk mendapatkan interval antara dua tanggal
  • Menggunakan fungsi AGE() untuk mendapatkan perbedaan tanggal dalam tahun, bulan, dan hari
  • Menggunakan fungsi EXTRACT() untuk mendapatkan tahun, kuartal, bulan, minggu, hari dari nilai tanggal
  • Menggunakan TO_TIMESTAMP() untuk mengonversi string menjadi stempel waktu
  • Ringkasan

Ikhtisar tipe data TANGGAL PostgreSQL

DATE tipe data di PostgreSQL digunakan untuk menyimpan tanggal dalam format YYYY-MM-DD (mis. 2022-03-24). Dibutuhkan 4 byte untuk menyimpan nilai tanggal dalam kolom. Perhatikan bahwa kemungkinan tanggal paling awal adalah 4713 SM dan kemungkinan tanggal terbaru adalah 5874897 M.

Sangat penting untuk mempertahankan keterbacaan kode pada tahap penulisannya. dbForge Studio untuk PostgreSQL dapat membanggakan Pemformat PostgreSQL yang nyaman dan intuitif. Mengurus pemformatan kode, pemeriksaan sintaks, dan penyelesaian kode, fitur formatter SQL Postgres dbForge Studio bawaan untuk PostgreSQL akan memungkinkan Anda tetap fokus menangani tipe data DATE juga.

Menggunakan tanggal saat ini sebagai nilai default

Nilai default dalam DATE kolom dalam database Postgres dapat diatur dengan menggunakan kata kunci DEFAULT CURRENT DATE , seperti pada script di bawah ini:

CREATE TABLE myevents (
event_id serial PRIMARY KEY,
event_details VARCHAR (255) NOT NULL,
event_date DATE NOT NULL DEFAULT CURRENT_DATE
);
INSERT INTO myevents (event_details)
VALUES('Meeting the client ABC');
 
SELECT * FROM myevents;

Seperti yang Anda lihat, nilai untuk [tanggal acara] kolom secara otomatis dimasukkan oleh server PostgreSQL, menggunakan tanggal sistem saat ini dalam format YYYY-MM-DD.

Fungsi TANGGAL Pascagres

Terkadang, penting untuk mengubah format tanggal atau menghitung nilai dalam tabel PostgreSQL. Kami mungkin perlu melakukan ini untuk pengguna dari zona waktu berbeda di seluruh dunia. Dalam hal ini, Fungsi SQL sangat penting.

Menggunakan fungsi NOW() untuk mendapatkan tanggal saat ini

SELECT now();

Anda dapat menggunakan titik dua ganda (::) untuk memberikan DATETIME nilai ke DATE nilai seperti yang ditunjukkan di bawah ini:

Stempel waktu sistem saat ini dikembalikan oleh NOW() fungsi. Sintaksnya adalah sebagai berikut:

SELECT now()::date;

Menggunakan fungsi TO_CHAR() – menampilkan nilai tanggal dalam format tertentu

Untuk menampilkan output dari nilai tanggal Postgres dalam format tertentu, TO_CHAR() fungsi berguna. Sintaksnya adalah sebagai berikut:

TO_CHAR(expression, format)

Ada dua parameter yang diterima oleh TO_CHAR() fungsi:

  • Tanggal masukan :Tanggal yang akan dikonversi ke format tertentu.
  • Format tanggal :Pengganti untuk spesifikasi format tanggal baru.

Mari kita lihat cara mengonversi nilai tanggal yang ada dari [Acara Saya] tabel ke dalam format DD-MM-YYYY.

SELECT event_details,event_date as ExistingDateformat,
to_char(event_date,'DD-MM-YYYY') As NewDateFormat FROM myevents;

Untuk mengonversi stempel waktu saat ini ke dalam format yang diinginkan, Anda dapat menggabungkan TO_CHAR() dan NOW() fungsi.

SELECT TO_CHAR(NOW() :: DATE, 'dd-mm-yyyy');

Menggunakan operator minus untuk mendapatkan interval antara dua tanggal

Untuk menghitung selisih antara dua tanggal, gunakan operator minus (-). Kueri di bawah ini memberikan periode waktu antara stempel waktu saat ini dan [tanggal acara] dari Acara Saya meja.

SELECT event_date,now() as currentdate,
now()-event_date as Interval FROM myevents
where event_id=2;

Anda juga dapat memilih interval tanggal yang akan dikembalikan ketika waktu tertentu telah berlalu. Lihat kueri di bawah ini:

SELECT (NOW() + interval '3 hour') AS threehourslater,
(NOW() + interval '2 day') AS Twodaylater,
(NOW() - interval '2 year') AS TwoYearBefore,
(event_date- interval '1 year') as eventdatedifference
from myevents;

Menggunakan fungsi AGE() untuk mendapatkan perbedaan tanggal dalam tahun, bulan, dan hari

Dengan AGE() fungsi, Anda bisa mendapatkan perbedaan tanggal dalam tahun, bulan, dan hari. Fungsi ini dapat digunakan untuk menentukan usia seseorang. Nilai tanggal pertama dikurangi dari nilai tanggal kedua dengan fungsi ini, yang menerima dua input tanggal. Ketika nilai dalam skrip fungsi dibalik, hasilnya adalah nilai negatif.

Mari kita cari tahu usia orang yang tanggal lahirnya 1995-10-09. Sintaksnya adalah sebagai berikut:

SELECT current_date,
AGE(timestamp '1995-10-09'::timestamp) as EmpAge;

Menggunakan fungsi EXTRACT() untuk mendapatkan tahun, kuartal, bulan, minggu, hari dari nilai tanggal

EXTRACT() fungsi mengembalikan hari, minggu, bulan, tahun, dan seperempat dari nilai tanggal yang ditentukan.

Ekstrak setahun:

SELECT EXTRACT(YEAR FROM TIMESTAMP '2022-04-09 10:30:15') as year;

Ekstrak sebulan:

SELECT EXTRACT(Month FROM TIMESTAMP '2022-04-09 10:30:15') as Month;

Ekstrak seperempat:

SELECT EXTRACT(QUARTER FROM TIMESTAMP '2022-04-09 10:30:15') as QUARTER;

Ekstrak hari dalam seminggu:

SELECT EXTRACT(DOW FROM TIMESTAMP '2022-04-09 10:30:15') as DOW;

Ekstrak hari dalam setahun:

SELECT EXTRACT(DOY FROM TIMESTAMP '2022-04-09 10:30:15') as DOY;

Perhatikan bahwa dbForge Studio menampilkan hasil eksekusi kueri masing-masing di tab terpisah.

EXTRACT() fungsi dapat dengan mudah digabungkan dengan INTERVAL . Mari kita asumsikan kita ingin mengatur interval sebagai 5 tahun 8 bulan 23 hari 08 jam 10 menit dan 20 detik. Nilai individual dikembalikan oleh EXTRACT fungsi.

SELECT EXTRACT(YEAR
FROM INTERVAL '5 years 8 month 23 days 08 hours 10 minutes 20 seconds' ),
EXTRACT(Month
FROM INTERVAL '5 years 8 month 23 days 08 hours 10 minutes 20 seconds' ),
EXTRACT(Day
FROM INTERVAL '5 years 8 month 23 days 08 hours 10 minutes 20 seconds' ),
EXTRACT(hour
FROM INTERVAL '5 years 8 month 23 days 08 hours 10 minutes 20 seconds' ),
EXTRACT(Minute
FROM INTERVAL '5 years 8 month 23 days 08 hours 10 minutes 20 seconds' );

Menggunakan TO_TIMESTAMP() untuk mengonversi string menjadi stempel waktu

Anda dapat menyimpan nilai tanggal dalam UTC (Koordinator waktu universal) dan mengubah zona waktu sesuai kebutuhan jika Anda ingin mengubah stempel waktu menjadi zona waktu yang berbeda.

SELECT * FROM pg_timezone_names;

Untuk memeriksa zona waktu saat ini, gunakan SHOW TIMEZONE perintah.

Anda dapat menggunakan AT TIME ZONE untuk menerima output untuk zona waktu yang dipilih dengan memilih nilai zona waktu yang diperlukan dari pg_timezone_names tabel.

SELECT '2022-04-09 10:36:19'::timestamp AT TIME ZONE 'America/Los_Angeles';

AT TIME ZONE memungkinkan Anda memiliki berbagai keluaran zona waktu.

SELECT '2022-04-09 10:36:19'::timestamp AT TIME ZONE 'America/Washington';
SELECT '2022-04-09 10:36:19'::timestamp AT TIME ZONE 'Asia/Beijing';
SELECT '2022-04-09 10:36:19'::timestamp AT TIME ZONE 'Europe/Kyiv';

Ringkasan

Singkatnya, DATE PostgreSQL tipe data sangat penting dan berguna saat menyimpan tanggal dan cap waktu dalam tabel, sehingga cukup umum dalam database relasional. Jangkauan penggunaannya sangat luas, itulah mengapa sangat penting untuk menjelaskannya kepada pengguna mana pun di negara dan zona waktu mana pun. Dengan berbagai fungsi Postgres, mudah untuk memenuhi kebutuhan pengguna, karena Anda dapat mengubah tanggal sehingga dapat digunakan di zona waktu tertentu, dengan format tertentu dan detail lain yang membuat bekerja dengan data tersebut menjadi lebih mudah. Terakhir, jika Anda mencari kombinasi sempurna antara antarmuka grafis intuitif dan baris perintah tambahan yang dapat bekerja dengan DATE tipe data bahkan lebih menyenangkan, dbForge Studio untuk PostgreSQL akan berguna.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Fungsi Tanggal &Waktu PostgreSQL

  2. Pilih (ambil) semua catatan dari beberapa skema menggunakan Postgres

  3. Cara mengambil cadangan fungsi hanya di Postgres

  4. Duplikat Baris dalam Tabel kunci utama.

  5. Hasilkan DDL secara terprogram di Postgresql