Menghitung Usia Pertanggal Tertentu MySQL

Dimisalkan untuk melamar sebuah pekerjaan perusahaan membatasi umur minimal karyawan/pelamar adalah harus < (kurang dari) 30 tahun.Perusahaan ingin menghitung usia calon pelamar pertanggal 31 juli 2023 dan tanggal lahir pelamar adalah 17 Januari 1993 dan pelamar melakukan lamaran pada 07 januari 2023 . Jadi perusahaan ingin mengetahui berapa umur pelamar ketika tanggal sudah mencapai 31 juli 2023, jadi disini nilai yang dibandingkan bukan berdasarkan bulan dan tanggal sekarang tetapi berdasarkan per 31 juli 2023

Untuk mengani kasus tersebut maka kita perlu menghitung usia dengan akurat dengan cara membandingkan tanggal lahir pelamar dengan per-tanggal 31 juli 2023 seperti berikut

MariaDB [(none)]> SET @lahir='1993-02-17';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> SET @sekarang='2023-07-31';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> SELECT @sekarang, @lahir, YEAR(@sekarang)-YEAR(@lahir)-IF(RIGHT(@sekarang,5)<RIGHT(@lahir,5),1,0) AS usia,
    -> MID(@sekarang,6,2) AS 'Bulan Sekarang', MID(@lahir,6,2) AS 'Bulan Lahir',
    -> MID(@sekarang,6,2)-MID(@lahir,6,2) AS 'Rentang Bulan';
+------------+------------+------+----------------+-------------+---------------+
| @sekarang  | @lahir     | usia | Bulan Sekarang | Bulan Lahir | Rentang Bulan |
+------------+------------+------+----------------+-------------+---------------+
| 2023-07-31 | 1993-02-17 |   30 | 07             | 02          |             5 |
+------------+------------+------+----------------+-------------+---------------+
1 row in set (0.00 sec)

Query diatas menghasilkan usia pelamar yaitu 30 th karena nilai tanggal dibandingkan dengan nilai per 31 juli, jadi meskipun ketika mendaftar umurnya sebenarnya masih 29 tahun, maka mysql tetap akan menghitung sebagai 30 tahun bukan 29 tahun, tapi bagaimana kalau misalnya sekarang tanggal lahir pelamar itu adalah 1993-06-01 maka jika menggunakan seperti query diatas hasilnya usia pelamar adalah 30 th
MariaDB [(none)]> SELECT @sekarang, @lahir, YEAR(@sekarang)-YEAR(@lahir)-IF(RIGHT(@sekarang,5)<RIGHT(@lahir,5),1,0) AS usia,
    -> MID(@sekarang,6,2) AS 'Bulan Sekarang', MID(@lahir,6,2) AS 'Bulan Lahir',
    -> MID(@sekarang,6,2)-MID(@lahir,6,2) AS 'Rentang Bulan';
+------------+------------+------+----------------+-------------+---------------+
| @sekarang  | @lahir     | usia | Bulan Sekarang | Bulan Lahir | Rentang Bulan |
+------------+------------+------+----------------+-------------+---------------+
| 2023-07-31 | 1993-06-01 |   30 | 07             | 06          |             1 |
+------------+------------+------+----------------+-------------+---------------+
1 row in set (0.00 sec)


Padahal misalnya pelamar melakukan lamaran pada 2023-05-01 yang artinya usia pelamar belum genap 30 th pada saat itu, maka kita bisa gunakan query seperti berikut
MariaDB [(none)]> SELECT CURDATE(), @batas, @lahir, YEAR(CURDATE())-YEAR(@lahir)-IF(RIGHT(CURDATE(),5)<RIGHT(@lahir,5),1,0) AS usia;
+------------+------------+------------+------+
| CURDATE()  | @batas     | @lahir     | usia |
+------------+------------+------------+------+
| 2023-01-05 | 2023-07-31 | 1993-06-01 |   29 |
+------------+------------+------------+------+
1 row in set (0.00 sec)



0 Response to "Menghitung Usia Pertanggal Tertentu MySQL"

Post a Comment

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin