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 SELECTtidak 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 SELECTtanpa 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.