Di PostgreSQL, make_date()
fungsi memungkinkan Anda membuat tanggal dari bidang tahun, bulan, dan hari yang terpisah.
Setiap bagian tanggal diberikan sebagai bilangan bulat , dan hasilnya dikembalikan sebagai tanggal .
Sintaks
Fungsi tersebut memiliki sintaks berikut:
make_date(year int, month int, day int)
Dimana year
, month
, dan day
adalah bilangan bulat yang mewakili tahun, bulan, dan hari dari tanggal.
Contoh
Berikut adalah contoh dasar untuk didemonstrasikan.
SELECT make_date(2020, 07, 25);
Hasil:
2020-07-25
Dan kami dapat memverifikasi bahwa itu mengembalikan tipe data tanggal dengan kueri berikut.
SELECT pg_typeof(make_date(2020, 07, 25));
Hasil:
date
pg_typeof()
function mengembalikan tipe data argumennya, jadi saya meneruskan make_date()
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_date(2020, 17, 25);
Hasil:
ERROR: date field value out of range: 2020-17-25
Ini dia lagi dengan bulan 00:
SELECT make_date(2020, 00, 25);
Hasil:
date field value out of range: 2020-00-25
Meneruskan String sebagai Argumen
Dokumentasi Postgres menyatakan bahwa argumen harus bilangan bulat, tetapi meneruskan string tampaknya berfungsi (mungkin karena mereka secara implisit dikonversi ke bilangan bulat), selama setiap argumen berada dalam kisaran yang tepat.
SELECT make_date('2020', '07', '25');
Hasil:
2020-07-25
Sekali lagi kita dapat menggunakan pg_type()
untuk memeriksa bahwa hasilnya sebenarnya adalah tanggal tipe data.
SELECT pg_typeof(make_date('2020', '07', '25'));
Hasil:
date
Namun, Anda masih perlu memastikan setiap argumen akan valid setelah dikonversi ke bilangan bulat, jika tidak, Anda akan mendapatkan error seperti berikut.
SELECT make_date(2020, 'July', 25);
Hasil:
ERROR: invalid input syntax for type integer: "July" LINE 1: SELECT make_date(2020, 'July', 25);