Panduan Pemula untuk Fungsi Tarikh dan Waktu MySQL
Hai sana, para ahli pangkalan data masa depan! Hari ini, kita akan melangkah ke dalam dunia yang menarik tentang fungsi tarikh dan waktu MySQL. Jangan bimbang jika anda belum pernah menulis baris kode sebelum ini - saya akan menjadi pandu anda yang ramah, dan kita akan mengambil langkah demi langkah. Pada akhir panduan ini, anda akan dapat mengendalikan tarikh dan waktu seperti seorang profesional!
Mengapa Fungsi Tarikh dan Waktu Penting
Sebelum kita mendalam, biarkan saya berkongsi cerita pendek. Beberapa tahun yang lalu, salah seorang murid saya sedang membina aplikasi pengingat hari jadi. Dia mengalami kesukaran dalam pengiraan tarikh sehingga dia menemui fungsi tarikh MySQL. Tiba-tiba, aplikasinya dapat memberitahu pengguna berapa hari lagi sehingga hari jadi kawan mereka. Itu seperti sihir! Itu kekuatan pengendalian fungsi ini.
Membiasakan Diri: Tarikh dan Waktu Semasa
mari kita mulakan dengan dasar. MySQL menyediakan beberapa fungsi untuk mendapatkan tarikh dan waktu semasa. Berikut adalah yang paling umum:
Fungsi | Keterangan | Contoh Output |
---|---|---|
NOW() | Tarikh dan waktu semasa | 2023-05-15 14:30:00 |
CURDATE() | Tarikh semasa | 2023-05-15 |
CURTIME() | Waktu semasa | 14:30:00 |
Mari lihat bagaimana ia berfungsi:
SELECT NOW(), CURDATE(), CURTIME();
Query ini akan mengembalikan tarikh dan waktu semasa, hanya tarikh, dan hanya waktu. Bagus, kan?
Menyamalkan Output
Fungsi NOW() mengembalikan nilai datetime, yang termasuk tarikh dan waktu. CURDATE() memberikan anda hanya tarikh dalam format 'YYYY-MM-DD', manakala CURTIME() menyediakan waktu dalam format 'HH:MM:SS'.
Mengambil Kebuang Dari Tarikh dan Waktu
Sekarang, mari kita katakan anda ada nilai datetime dan anda mahu mengambil bahagian khusus daripadanya. MySQL menyediakan fungsi berguna untuk ini:
Fungsi | Keterangan | 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 minit | MINUTE('14:30:00') | 30 |
SECOND() | Mengambil saat | SECOND('14:30:45') | 45 |
Mari cuba 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 minit,
SECOND('14:30:45') AS saat;
Query ini akan secara rapi mengambil setiap bahagian tarikh dan waktu untuk kita.
Aplikasi Dalam Dunia Real
Imagin anda membina laman web yang menunjukkan hari jadi pengguna. Anda boleh menggunakan fungsi MONTH() dan DAY() untuk mengambil hanya bulan dan hari daripada hari jadi yang disimpan, meninggalkan tahun. Dengan cara ini, anda boleh mahu pengguna selamat hari jadi tanpa mendedahkan umur mereka!
Penjumlahan dan Penolakan Tarikh
Salah satu hal yang menarik tentang fungsi tarikh MySQL adalah anda boleh melakukan pengiraan dengannya. Mari kita lihat beberapa fungsi untuk ini:
Fungsi | Keterangan | Contoh Penggunaan |
---|---|---|
DATE_ADD() | Menambah interval ke tarikh | DATE_ADD('2023-05-15', INTERVAL 1 DAY) |
DATE_SUB() | Mengurangkan interval daripada tarikh | DATE_SUB('2023-05-15', INTERVAL 1 BULAN) |
DATEDIFF() | Mencari perbezaan antara tarikh | DATEDIFF('2023-05-15', '2023-01-01') |
Berikut adalah contoh penggunaannya:
SELECT
DATE_ADD('2023-05-15', INTERVAL 1 DAY) AS esok,
DATE_SUB('2023-05-15', INTERVAL 1 BULAN) AS bulan_lepas,
DATEDIFF('2023-05-15', '2023-01-01') AS hari_sejak_tahun_baru;
Query ini akan menunjukkan tarikh esok, tarikh sebulan yang lalu, dan berapa hari yang telah lalu sejak Tahun Baru.
Kuasa Interval
Dalam fungsi DATE_ADD() dan DATE_SUB(), kita menggunakan kata kunci INTERVAL. Ini sangat fleksibel - anda boleh menambah atau mengurangkan tahun, bulan, hari, jam, minit, dan bahkan saat!
Pemformatan Tarikh dan Waktu
kadang-kadang, anda perlu mempresentasikan tarikh dan waktu dalam format khusus. Itulah di mana fungsi DATE_FORMAT() berguna:
SELECT DATE_FORMAT('2023-05-15 14:30:00', '%W, %M %d, %Y at %h:%i %p') AS tarikh_diformat;
Ini akan mengeluarkan: "Monday, May 15, 2023 at 02:30 PM"
Simbol % diikuti oleh huruf adalah penentukan format. Berikut adalah yang paling umum:
Penentuan | Keterangan |
---|---|
%W | Nama hari penuh |
%M | Nama bulan penuh |
%d | Hari dalam bulan (01-31) |
%Y | Tahun sebagai nombor 4-digit |
%h | Jam (01-12) |
%i | Minit (00-59) |
%p | AM atau PM |
Menggabungkan Segala-ganya
mari kita gabungkan apa yang kita telah belajar dalam contoh praktikal. Imagin anda membina sistem untuk melacak ulang tahun kerja pekerja:
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
hire_date DATE
);
INSERT INTO employees 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_bekerja,
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_sehingga_ulang_tahun;
FROM employees;
Query ini melakukan beberapa hal:
- Mengira berapa tahun pekerja telah bekerja di syarikat.
- Menentukan tarikh ulang tahun kerja mereka berikutnya.
- Mengira berapa hari lagi sehingga ulang tahun kerja mereka.
Kesimpulan
Tahniah! Anda telah mengambil langkah pertama ke dunia fungsi tarikh dan waktu MySQL. Kita telah melihat dasar mendapatkan tarikh dan waktu semasa, mengambil bahagian daripada tarikh, pengiraan tarikh, dan pemformatan tarikh untuk paparan.
Ingat, latihan membuat sempurna. Cobalah untuk membuat query sendiri menggunakan fungsi ini. Mungkin bangun aplikasi pengingat hari jadi yang saya sebutkan sebelum ini! Semakin anda bermain dengan fungsi ini, semakin anda akan merasakan kenyamanannya. Dan selalu ingat: di dunia pemrograman, setiap hari adalah peluang baru untuk belajar dan tumbuh. Selamat coding, para master pangkalan data masa depan!
Credits: Image by storyset