Kamis, 30 April 2020

Menghitung Umur Menggunakan datediff() pada SQL Server

Assalamualaikum Sobat YLunak! 
Kali ini YLunak akan berbagi tutorial seputar query SQL. Buat sobat yang masih bingung cara menghitung umur menggunakan SQL Server, ayo kita simak tutorialnya.

Menghitung Umur Menggunakan datediff() pada SQL Server menampilkan umur sql server dengan datediff penggunaan datediff() mengambil selisih umur sql server
Menghitung Umur Menggunakan datediff() pada SQL Server

Berikut contoh penggunaan function datediff untuk menghitung umur menggunakan SQL Server :
select
datediff(year, '2001-03-02 00:00:00.000', getdate()) as_year,
datediff(month, '2001-03-02 00:00:00.000', getdate()) as_month,
datediff(day, '2001-03-02 00:00:00.000', getdate()) as_day,
datediff(hour, '2001-03-02 00:00:00.000', getdate()) as_hour,
datediff(minute, '2001-03-02 00:00:00.000', getdate()) as_minute,
datediff(second, '2001-03-02 00:00:00.000', getdate()) as_second

Jika query tersebut dijalankan, hasilnya akan tampil seperti berikut :

Datediff month year day minute second menghitung umur sql server menghitung umur dengan datediff
Menampilkan umur dengan function datediff ()

Query tersebut juga bisa dipakai untuk menghitung umur yang data tanggal lahirnya sudah disimpan dalam database, tapi querynya perlu disesuaikan dulu menjadi seperti ini :
select
datediff(year, 'nama_kolom', getdate()) as_year

Dari query tadi, hanya bagian tanggalnya saja yang perlu diganti menjadi nama_kolom yang menyimpan data tanggal lahirnya.

Contoh kasus :
Ria lahir pada tanggal 2 Juli 2000. Tampilkan umur Ria dengan menampilkan tahun dan sisa bulannya! Misal : 5 tahun 10 bulan

Jawab :
Dari contoh kasus tersebut, kita bisa menjalankan query seperti ini :

select
datediff(month, '2001-07-02 00:00:00.000', getdate()) /12 TAHUN,
datediff(month, '2001-07-02 00:00:00.000', getdate()) %12 BULAN

Jika query tersebut dijalankan, hasilnya seperti gambar berikut :

Menghitung umur dengan menampilkan sisa umurnya
Menghitung umur dengan menampilkan sisa umurnya

Jadi umur Ria sekarang adalah 18 tahun 9 bulan.

Kalau kita hanya running query sampai datediff yang pertama. Hasilnya hanya menampilkan umur dalam satuan tahun saja. Query :

select 
datediff(month, '2001-07-02 00:00:00.000', getdate()) /12 TAHUN

Sebenarnya sama dengan query :

select 
datediff(year, '2001-07-02 00:00:00.000', getdate()) TAHUN

/12 pada query yang pertama digunakan karena di query tersebut memakai datediff month. Jika tidak menuliskan /12, maka umur yang tampil saat query di jalankan yaitu dalam satuan bulan. Jadi itulah mengapa perlu ditambahkan /12

Nah, kalau memakai datediff year, seperti query ke-dua, tidak perlu menuliskan /12. Karena sudah pasti hasilnya memakai satuan tahun. Jika menuliskan /12, hasilnya tidak sesuai yang diinginkan.

Kalau function getdate(), kalian pasti sudah tahu kan? Iyap, function tersebut digunakan untuk mengambil value tanggal sekarang/tanggal query tersebut dijalankan.

Kalau ada kesalahan, mohon koreksinya. Kalau ada tambahan, silahkan tulis di kolom komentar, ya, Sob!

Terima kasih. Selamat Belajar!
Wassalamu'alaikum.

2 komentar: