Masalah:
Anda ingin mendapatkan waktu saat ini dengan offset zona waktunya di database PostgreSQL.
Solusi:
Kami akan menggunakan fungsi CURRENT_TIME untuk mendapatkan informasi waktu dan zona waktu saat ini. Inilah kueri yang akan Anda tulis:
SELECT CURRENT_TIME;
Berikut hasil querynya:
16:10:11.232455-05
Diskusi:
Fungsi PostgreSQL CURRENT_TIME
mengembalikan offset waktu dan zona waktu saat ini dari mesin yang menjalankan PostgreSQL. Itu diberikan sebagai nilai dalam 'hh:mm:ss.nnnnnn+/-tz' format. Dalam format ini:
- hh adalah 2 digit jam.
- mm adalah menit 2 digit.
- ss adalah 2 digit detik.
- nnnnnn mendefinisikan jumlah detik pecahan (yaitu presisi) dari 0 hingga 6.
- +tz atau -tz adalah offset zona waktu, baik plus atau minus dari UTC.
CURRENT_TIME
tidak memiliki tanda kurung. Namun, jika Anda ingin menampilkan waktu dengan presisi tertentu, Anda dapat menambahkan tanda kurung dan menyertakan bilangan bulat dari 0 hingga 6. (Argumen “0” tidak akan mengembalikan detik pecahan, “1” akan mengembalikan satu detik pecahan (mis. tempat di belakang desimal), dll. Ini akan mengembalikan waktu dengan jumlah detik pecahan yang Anda nyatakan dan offset zona waktu. Lihat contoh berikut:
SELECT CURRENT_TIME(2) ;
Berikut hasil querynya:
16:10:11.23-05
Hasil ini berisi 2 digit pecahan detik karena kami menempatkan 2 sebagai argumen. Offset zona waktu muncul sebagai positif atau negatif (+ atau -) tergantung pada apakah waktunya di depan atau di belakang UTC.
Waktu yang dikembalikan oleh fungsi ini tidak berubah selama transaksi atau satu kueri. Itu selalu waktu ketika transaksi dimulai.