3.1 Daftar fungsi untuk bekerja dengan tanggal dan waktu
Tanggal dan waktu adalah salah satu jenis data yang paling umum disimpan dalam database. Itulah mengapa daftar fungsi untuk bekerja dengannya sangat banyak. Inilah yang paling populer:
# | Fungsi | Keterangan |
---|---|---|
1 | CURDATE() | Mengembalikan tanggal saat ini |
2 | KURTIME() | Mengembalikan waktu saat ini |
3 | SEKARANG(), WAKTU LOKAL() | Mengembalikan tanggal saat ini dan waktu saat ini |
4 | TAHUN() | Mengembalikan tahun dari tanggal |
5 | BULAN() | Mengembalikan bulan dari tanggal |
6 | HARI(), DAYOFMONTH() | Mengembalikan hari dari tanggal |
7 | JAM() | Mengembalikan hanya beberapa jam dari waktu |
8 | MENIT() | Mengumumkan menit dari waktu |
9 | KEDUA() | Mengembalikan detik dari waktu |
10 | DAYNAME() | Mengembalikan nama hari dalam seminggu: Senin, ... |
sebelas | NAMABULAN() | Mengembalikan nama bulan: Januari, ... |
12 | PEKAN() | Mengembalikan minggu dari tanggal |
13 | HARI KERJA() | Mengembalikan jumlah hari dalam seminggu: Senin - 0, Selasa - 1 |
14 | MINGGUFYEAR() | Mengembalikan nomor minggu dalam setahun |
15 | HARI DALAM SEMINGGU() | Mengembalikan jumlah hari dalam seminggu: Minggu - 1, Senin - 2 |
16 | DAYOFYEAR() | Mengembalikan hari dalam setahun: 1-366 |
17 | TANGGAL() | Mengembalikan hanya tanggal dari objek "datetime". |
18 | TAMBAHKAN() | Menambahkan hari ke tanggal |
19 | SUBDATE() | Mengurangi hari dari tanggal |
20 | TAMBAH WAKTU() | Menambahkan waktu ke waktu |
21 | SUBTIME() | Mengurangi waktu dari waktu |
Saya sengaja mengelompokkan fungsi-fungsi tersebut ke dalam kelompok-kelompok kecil agar lebih mudah memahami cara bekerja dengannya. Di bawah ini kami akan mempertimbangkan satu fungsi dari setiap grup.
Anda dapat menemukan daftar lengkap fungsi untuk bekerja dengan tanggal dan waktu di tautan: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html
3.2 Fungsi pemanggilan
Omong-omong, karena kita mempelajari begitu banyak fungsi, menurut saya akan sangat membantu untuk menyebutkan bahwa operator SELECT
tidak harus digunakan dengan FROM
. Itu dapat mengembalikan nilai ekspresi apa pun. Tampilan umum yang diberikan oleh template:
SELECT expression
Dan jika Anda ingin memanggil beberapa fungsi, maka Anda perlu menulis kode seperti:
SELECT function(options)
Di bawah ini saya akan memberikan beberapa contoh pengoperasian operator SELECT
tanpa bantuan tabel:
# | Meminta | Hasil |
---|---|---|
1 | PILIH 1+1 | 2 |
2 | PILIH 13 MOD 5 | 3 |
3 | PILIH RAND() | 0,20771444235715497 |
4 | PILIH KURDATE() | 04-06-2022 |
5 | PILIH JAM () | 00:06:02 |
6 | PILIH SEKARANG() | 04-06-2022 00:06:43 |
Dan, seperti yang Anda lihat, pada tabel di atas, untuk mendapatkan tanggal dan waktu saat ini, Anda hanya perlu menggunakan salah satu fungsi:
CURDATE()
- tanggal sekarang;CURTIME()
- waktu saat ini;NOW()
- tanggal dan waktu saat ini.
3.3 Mengelompokkan data berdasarkan tahun dan bulan
Mari kita ingat tabel tugas kita dengan tugas untuk karyawan. Mari kita coba mengelompokkan tugas dari tabel ini berdasarkan tahun. Untuk melakukan ini, kami menggunakan fungsi YEAR()
, yang mengembalikan tahun dari tanggal yang diteruskan ke sana.
Versi pertama kueri kami akan terlihat seperti ini:
SELECT
id,
employee_id ,
name,
YEAR(deadline) AS year,
deadline
FROM task
Hasil dari kueri ini adalah:
pengenal | identitas pegawai | nama | tahun | tenggat waktu |
---|---|---|---|---|
1 | 1 | Perbaiki bug di frontend | 2022 | 01-06-2022 |
2 | 2 | Perbaiki bug di backend | 2022 | 15-06-2022 |
3 | 5 | Beli kopi | 2022 | 01-07-2022 |
4 | 5 | Beli kopi | 2022 | 01-08-2022 |
5 | 5 | Beli kopi | 2022 | 01-09-2022 |
6 | (BATAL) | Membersihkan kantor | (BATAL) | (BATAL) |
7 | 4 | Menikmati hidup | (BATAL) | (BATAL) |
8 | 6 | Menikmati hidup | (BATAL) | (BATAL) |
Kita dapat melihat bahwa semua baris memiliki tahun yang sama, jadi mari gunakan dua bidang - tahun dan bulan. Versi kedua kueri kita akan terlihat seperti ini:
SELECT
id,
employee_id ,
name,
YEAR(deadline) AS year,
MONTH(deadline) AS month,
deadline
FROM task
Hasil dari kueri ini adalah:
pengenal | identitas pegawai | nama | tahun | bulan | tenggat waktu |
---|---|---|---|---|---|
1 | 1 | Perbaiki bug di frontend | 2022 | 6 | 01-06-2022 |
2 | 2 | Perbaiki bug di backend | 2022 | 6 | 15-06-2022 |
3 | 5 | Beli kopi | 2022 | 7 | 01-07-2022 |
4 | 5 | Beli kopi | 2022 | 8 | 01-08-2022 |
5 | 5 | Beli kopi | 2022 | 9 | 01-09-2022 |
6 | (BATAL) | Membersihkan kantor | (BATAL) | (BATAL) | (BATAL) |
7 | 4 | Menikmati hidup | (BATAL) | (BATAL) | (BATAL) |
8 | 6 | Menikmati hidup | (BATAL) | (BATAL) | (BATAL) |
Saya tidak akan memberi tahu Anda cara mengelompokkan tugas berdasarkan tahun dan bulan - Anda sudah mempelajari ini: gunakan operator GROUP BY
.
GO TO FULL VERSION