Masalah:
Anda ingin mengonversi string yang berisi informasi waktu-tanggal menjadi stempel waktu di PostgreSQL.
Mari kita ubah string yang berisi informasi tanggal, waktu, dan zona waktu ke tipe data timestamptz.
Solusi:
Kami akan menggunakan TO_TIMESTAMP()
fungsi. Inilah kueri yang akan Anda tulis:
SELECT TO_TIMESTAMP('2018/08/27/15:23:45', 'YYYY/MM/DD/HH24:MI:ss') AS new_timestamptz;
Berikut hasil querynya:
new_timestamptz |
---|
27-08-2018 15:23:45+02 |
Diskusi:
Gunakan fungsi PostgreSQL TO_TIMESTAMP()
ketika Anda ingin mengonversi string yang berisi data tanggal dan waktu ke stempel waktu tipe data. Fungsi ini membutuhkan dua argumen:string yang berisi tanggal dan waktu (dalam contoh kita, teks '2018/08/27/15:23:45
') dan format input (dalam contoh kita, 'YYYY/MM/DD/HH24:MI:ss
'). Format input menunjukkan bagaimana karakter dalam string harus dikonversi. Berikut adalah elemen utama dari pola di atas:
- YYYY mewakili 4 digit tahun.
- MM mewakili 2 digit bulan.
- DD mewakili 2 digit hari dalam sebulan.
- HH24 mewakili 2 digit jam (dari 00 hingga 23).
- MI mewakili menit 2 digit (dari 00 hingga 59).
- ss mewakili 2 digit detik (dari 00 hingga 59).
Perhatikan bahwa kami menggunakan garis miring (/) sebagai pembatas bagian tanggal dan titik dua (:) sebagai pembatas bagian waktu. Anda dapat menemukan daftar lengkap elemen pola datetime dalam dokumentasi PostgreSQL.
Perhatikan bahwa format input adalah string. Fungsi TO_TIMESTAMP() mengembalikan timestamptz nilai dengan informasi zona waktu.
Dalam contoh kita, teks tanggal dan waktu '2018/08/27/15:23:45
'dikonversi ke stempel waktu nilai 2018-08-27 15:23:45+02
. stempel waktu tipe data lebih mudah dibaca.