Panduan Pemula untuk Fungsi Tanggal dan Waktu MySQL

Halo teman-teman, sang pemaham database masa depan! Hari ini, kita akan mengemban perjalanan menarik melalui dunia fungsi tanggal dan waktu MySQL. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya – saya akan menjadi panduan Anda yang ramah, dan kita akan berjalan langkah demi langkah. Pada akhir panduan ini, Anda akan dapat memanipulasi tanggal dan waktu seperti seorang ahli!

MySQL - Date and Time Functions

Mengapa Fungsi Tanggal dan Waktu Penting

Sebelum kita mendalam, mari saya ceritakan kisah singkat. Beberapa tahun yang lalu, salah satu murid saya sedang membuat aplikasi pengingat ulang tahun. Dia kesulitan melakukan perhitungan tanggal sampai dia menemukan fungsi tanggal MySQL. Tiba-tiba, aplikasinya dapat memberitahu pengguna berapa hari lagi hingga ulang tahun teman-temannya. Itu seperti magis! Itu kekuatan menguasai fungsi-fungsi ini.

Memulai: Tanggal dan Waktu Saat Ini

Ayo mulai dari dasar. MySQL menyediakan beberapa fungsi untuk mendapatkan tanggal dan waktu saat ini. Berikut ini yang paling umum:

Fungsi Deskripsi Contoh Output
NOW() Tanggal dan waktu saat ini 2023-05-15 14:30:00
CURDATE() Tanggal saat ini 2023-05-15
CURTIME() Waktu saat ini 14:30:00

mari lihat bagaimana ini bekerja:

SELECT NOW(), CURDATE(), CURTIME();

Kueri ini akan mengembalikan tanggal dan waktu saat ini, hanya tanggal, dan hanya waktu. cukup menarik, kan?

Memahami Output

Fungsi NOW() mengembalikan nilai datetime, yang mencakup tanggal dan waktu. CURDATE() memberikan Anda tanggal dalam format 'YYYY-MM-DD', sedangkan CURTIME() memberikan waktu dalam format 'HH:MM:SS'.

Mengambil Bagian dari Tanggal dan Waktu

Sekarang, mari kitaanggap Anda memiliki nilai datetime dan Anda ingin mengambil bagian tertentu dari itu. MySQL memiliki fungsi yang membantu untuk hal ini:

Fungsi Deskripsi Contoh Penggunaan Contoh Output
YEAR() Mengambil tahun YEAR('2023-05-15') 2023
MONTH() Mengambil bulan MONTH('2023-05-15') 5
DAY() Mengambil hari DAY('2023-05-15') 15
HOUR() Mengambil jam HOUR('14:30:00') 14
MINUTE() Mengambil menit MINUTE('14:30:00') 30
SECOND() Mengambil detik SECOND('14:30:45') 45

mari cobalah ini:

SELECT
YEAR('2023-05-15') AS tahun,
MONTH('2023-05-15') AS bulan,
DAY('2023-05-15') AS hari,
HOUR('14:30:45') AS jam,
MINUTE('14:30:45') AS menit,
SECOND('14:30:45') AS detik;

Kueri ini akan secara rapi mengambil setiap bagian dari tanggal dan waktu untuk kita.

Aplikasi Dunia Nyata

Bayangkan Anda sedang membuat situs web yang menampilkan ulang tahun pengguna. Anda dapat menggunakan fungsi MONTH() dan DAY() untuk mengambil hanya bulan dan hari dari tanggal ulang tahun yang disimpan, mengabaikan tahun. Dengan cara ini, Anda dapat memberikan selamat ulang tahun kepada pengguna tanpa mengungkapkan umurnya!

Aritmetika Tanggal: Menambah dan Mengurangi

Salah satu hal yang paling menarik tentang fungsi tanggal MySQL adalah Anda dapat melakukan operasi matematika dengan tanggal. Mari kita lihat beberapa fungsi untuk ini:

Fungsi Deskripsi Contoh Penggunaan
DATE_ADD() Menambah interval ke tanggal DATE_ADD('2023-05-15', INTERVAL 1 DAY)
DATE_SUB() Mengurangi interval dari tanggal DATE_SUB('2023-05-15', INTERVAL 1 BULAN)
DATEDIFF() Mencari perbedaan antara tanggal DATEDIFF('2023-05-15', '2023-01-01')

Berikut contoh penggunaannya:

SELECT
DATE_ADD('2023-05-15', INTERVAL 1 DAY) AS besok,
DATE_SUB('2023-05-15', INTERVAL 1 BULAN) AS bulan_lalu,
DATEDIFF('2023-05-15', '2023-01-01') AS hari_sejak_tahun_baru;

Kueri ini akan menampilkan tanggal besok, tanggal sebulan yang lalu, dan berapa hari yang telah berlalu sejak Tahun Baru.

Kekuatan Interval

Dalam fungsi DATE_ADD() dan DATE_SUB(), kita menggunakan kata kunci INTERVAL. Ini sangat fleksibel – Anda dapat menambahkan atau mengurangi tahun, bulan, hari, jam, menit, dan bahkan detik!

Memformat Tanggal dan Waktu

kadang-kadang, Anda perlu menampilkan tanggal dan waktu dalam format tertentu. Itu di mana fungsi DATE_FORMAT() berguna:

SELECT DATE_FORMAT('2023-05-15 14:30:00', '%W, %M %d, %Y at %h:%i %p') AS tanggal_diformat;

Ini akan menghasilkan: "Monday, May 15, 2023 at 02:30 PM"

Simbol % diikuti dengan huruf adalah penentu format. Berikut beberapa yang umum:

Penentu Deskripsi
%W Nama hari penuh
%M Nama bulan penuh
%d Hari dalam bulan (01-31)
%Y Tahun dalam 4 digit
%h Jam (01-12)
%i Menit (00-59)
%p AM atau PM

Menggabungkan Semua

mari gabungkan apa yang kita pelajari ke dalam contoh praktis. Bayangkan kita sedang membuat sistem untuk melacak ulang tahun kerja karyawan:

CREATE TABLE karyawan (
id INT PRIMARY KEY,
name VARCHAR(100),
hire_date DATE
);

INSERT INTO karyawan VALUES
(1, 'Alice', '2020-06-15'),
(2, 'Bob', '2021-03-20'),
(3, 'Charlie', '2019-11-01');

SELECT
name,
hire_date,
YEAR(CURDATE()) - YEAR(hire_date) AS tahun_kerja,
DATE_ADD(DATE(CONCAT(YEAR(CURDATE()), '-', MONTH(hire_date), '-', DAY(hire_date))),
INTERVAL IF(CURDATE() > DATE(CONCAT(YEAR(CURDATE()), '-', MONTH(hire_date), '-', DAY(hire_date))), 1, 0) YEAR)
AS ulang_tahun_berikutnya,
DATEDIFF(
DATE_ADD(DATE(CONCAT(YEAR(CURDATE()), '-', MONTH(hire_date), '-', DAY(hire_date))),
INTERVAL IF(CURDATE() > DATE(CONCAT(YEAR(CURDATE()), '-', MONTH(hire_date), '-', DAY(hire_date))), 1, 0) YEAR),
CURDATE()
) AS hari_sampai_ulang_tahun
FROM karyawan;

Kueri ini melakukan beberapa hal:

  1. Menghitung berapa tahun karyawan bekerja di perusahaan.
  2. Menentukan tanggal ulang tahun kerja berikutnya.
  3. Menghitung berapa hari lagi hingga ulang tahun kerja berikutnya.

Kesimpulan

Selamat! Anda baru saja mengambil langkah pertama ke dunia fungsi tanggal dan waktu MySQL. Kita telah menjelajahi dasar mendapatkan tanggal dan waktu saat ini, mengambil bagian dari tanggal, melakukan aritmetika tanggal, dan memformat tanggal untuk tampilan.

Ingat, latihan membuat sempurna. Cobalah membuat kueri Anda sendiri menggunakan fungsi-fungsi ini. Mungkin buat aplikasi pengingat ulang tahun yang saya sebutkan sebelumnya! Semakin Anda bermain dengan fungsi-fungsi ini, semakin Anda akan merasa nyaman dengan mereka.

Dan selalu ingat: di dunia pemrograman, setiap hari adalah kesempatan baru untuk belajar dan tumbuh. Selamat coding, sang pemaham database masa depan!

Credits: Image by storyset