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.
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 :
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 :
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.
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 |
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 :
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 |
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.
Sngat bermanfaat
BalasHapusTerimakasih. Jika dirasa bermanfaat boleh di share ya
Hapus