Di PostgreSQL, make_time()
fungsi memungkinkan Anda untuk membuat waktu dari bidang jam, menit dan detiknya.
Sintaks
Fungsi tersebut memiliki sintaks berikut:
make_time(hour int, min int, sec double precision)
Dimana hour
adalah bagian jam, min
adalah bagian menit, dan sec
adalah bagian detik.
Jam dan menit diberikan sebagai bilangan bulat , detik diberikan sebagai presisi ganda .
Hasilnya dikembalikan sebagai waktu . Lebih tepatnya, itu dikembalikan sebagai waktu tanpa zona waktu .
Contoh
Berikut adalah contoh dasar untuk didemonstrasikan.
SELECT make_time(7, 45, 15.08);
Hasil:
07:45:15.08
Dan kami dapat memverifikasi jenis pengembalian dengan kueri berikut.
SELECT pg_typeof(make_time(7, 45, 15.08));
Hasil:
time without time zone
pg_typeof()
function mengembalikan tipe data argumennya, jadi saya meneruskan make_time()
sebagai argumen..
Di Luar Jangkauan
Jika salah satu argumen berada di luar rentang nilai yang mungkin untuk bagian tanggalnya, Anda akan mendapatkan kesalahan "di luar rentang".
SELECT make_time(25, 45, 15.08);
Hasil:
ERROR: time field value out of range: 25:45:15.08
Meneruskan String sebagai Argumen
Dokumentasi Postgres menyatakan bahwa argumen harus bilangan bulat (dan presisi ganda dalam hal seconds
argumen), tetapi meneruskan string juga berfungsi (mungkin karena mereka secara implisit dikonversi ke bilangan bulat), selama setiap argumen berada dalam rentang yang tepat.
SELECT make_time('7', '45', '15.08');
Hasil:
07:45:15.08
Sekali lagi kita dapat menggunakan pg_type()
untuk memeriksa tipe data yang dihasilkan.
SELECT pg_typeof(make_time('7', '45', '15.08'));
Hasil:
time without time zone
Namun, Anda masih perlu memastikan setiap argumen akan valid setelah dikonversi ke bilangan bulat, jika tidak, Anda akan mendapatkan kesalahan.
SELECT make_time('25', '45', '15.08');
Hasil:
ERROR: time field value out of range: 25:45:15.08