Masalah:
Anda ingin mendapatkan tanggal dan waktu saat ini di database PostgreSQL. Anda tidak perlu offset zona waktu.
Solusi:
Kami akan menggunakan fungsi LOCALTIMESTAMP
untuk mendapatkan tanggal dan waktu saat ini tanpa informasi zona waktu:
SELECT LOCALTIMESTAMP ;
Berikut hasil querynya:
2019-09-24 20:10:58.977914
Diskusi:
Fungsi PostgreSQL LOCALTIMESTAMP
mengembalikan tanggal dan waktu saat ini (dari mesin yang menjalankan instance PostgreSQL itu) sebagai stempel waktu nilai. Ia menggunakan 'YYYY-MM-DD jj:mm:ss.nnnnnnn ' format, di mana:
- YYYY adalah tahun dengan 4 digit.
- MM adalah bulan dengan 2 digit.
- DD adalah hari dengan 2 digit.
- hh adalah 2 digit jam.
- mm adalah menit 2 digit.
- ss adalah 2 digit detik.
- nnnnnn adalah pecahan detik (dari nol hingga presisi 6 digit).
Seperti yang Anda perhatikan, fungsi ini tidak memiliki tanda kurung. Namun, jika Anda ingin menampilkan tanggal dan waktu dengan presisi tertentu, masukkan bilangan bulat dari 0 hingga 6 sebagai argumen di dalam tanda kurung. Ini akan mengembalikan tanggal dan waktu dengan jumlah detik pecahan yang Anda inginkan. Misalnya, LOCALTIMESTAMP(1)
menunjukkan hanya satu detik pecahan (yaitu satu tempat setelah desimal); 2 akan mengembalikan dua tempat, dll. Presisi default adalah 6, yang juga merupakan jumlah maksimum pecahan detik; inilah yang Anda dapatkan jika tidak menggunakan tanda kurung sama sekali. Lihat contoh berikut:
SELECT LOCALTIMESTAMP(0) ;
Berikut hasil querynya:
2019-09-24 20:10:58
Hasil ini tidak mengandung pecahan detik karena kami menempatkan 0 sebagai argumen.
Fungsi ini mengembalikan waktu saat transaksi saat ini dimulai. Perbedaan antara LOCALTIMESTAMP
dan CURRENT_TIMESTAMP
apakah itu LOCALTIMESTAMP
tidak termasuk offset zona waktu.