3.1 Dhaptar fungsi kanggo nggarap tanggal lan wektu

Tanggal lan wektu minangka salah sawijining jinis data sing paling umum sing disimpen ing basis data. Pramila dhaptar fungsi kanggo nggarap dheweke gedhe banget. Ing ngisor iki sing paling populer:

# Fungsi Katrangan
1 CURDATE() Ngasilake tanggal saiki
2 CURTIME() Ngasilake wektu saiki
3 SAIKI(), LOCALTIME() Ngasilake tanggal saiki lan wektu saiki
4 TAHUN() Ngasilake taun saka tanggal
5 WULAN() Ngasilake sasi saka tanggal
6 DAY(), DAYOFMONTH() Ngasilake dina saka tanggal
7 JAM() Ngasilake mung jam saka wektu
8 MENIT() Ngumumake menit saka wektu
9 Kapindho() Ngasilake detik saka wektu
10 DAYNAME() Ngasilake jeneng dina ing minggu: Senin, ...
sewelas NAMA WULAN() Ngasilake jeneng sasi: Januari, ...
12 MINGGU() Ngasilake minggu saka tanggal
13 MINGGU() Ngasilake nomer dina minggu: Senin - 0, Selasa - 1
14 WEKOFYEAR() Ngasilake nomer minggu ing taun
15 DAYOFWEEK() Ngasilake nomer dina minggu: Minggu - 1, Senin - 2
16 DAYOFYEAR() Ngasilake dina taun: 1-366
17 TANGGAL() Ngasilake mung tanggal saka obyek "datetime".
18 TAMBAHAN() Nambah dina kanggo tanggal
19 SUBDATE() Ngurangi dina saka tanggal
20 ADDTIME() Nambah wektu kanggo wektu
21 SUBTIME() Ngurangi wektu saka wektu

Aku sengaja nglumpukake fungsi dadi klompok cilik supaya luwih gampang ngerti carane nggarap. Ing ngisor iki kita bakal nimbang siji fungsi saka saben klompok.

Sampeyan bisa nemokake dhaptar lengkap fungsi kanggo nggarap tanggal lan wektu ing link: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html

3.2 Fungsi Telpon

Miturut cara, amarga kita lagi sinau supaya akeh fungsi, Aku iku mbiyantu kanggo sebutno sing operator SELECTora kudu digunakake karo FROM. Bisa ngasilake nilai ekspresi apa wae. Tampilan umum sing diwenehake dening cithakan:

SELECT expression

Lan yen sampeyan pengin nelpon sawetara fungsi, sampeyan kudu nulis kode kaya:

SELECT function(options)

Ing ngisor iki aku bakal menehi sawetara conto operasi operator SELECTtanpa recourse menyang tabel:

# Panjaluk asil
1 PILIH 1+1 2
2 PILIH 13 MOD 5 3
3 PILIH RAND() 0.20771444235715497
4 PILIH CURDATE() 2022-06-04
5 PILIH CURTIME() 00:06:02
6 PILIH SAIKI() 04-06-2022 00:06:43

Lan, kaya sing sampeyan ngerteni, ing tabel ing ndhuwur, kanggo entuk tanggal lan wektu saiki, sampeyan mung kudu nggunakake salah sawijining fungsi:

  • CURDATE()- tanggal saiki;
  • CURTIME()- wektu saiki;
  • NOW()- tanggal lan wektu saiki.

3.3 Nglumpukake data miturut taun lan sasi

Ayo kelingan tabel tugas karo tugas kanggo karyawan. Coba klompok tugas saka tabel iki miturut taun. Kanggo nindakake iki, kita nggunakake fungsi YEAR(), sing ngasilake taun saka tanggal kasebut.

Versi pisanan saka pitakonan kita bakal katon kaya iki:

SELECT
    id,
    employee_id ,
    name,
    YEAR(deadline) AS year,
    deadline
FROM task

Asil saka pitakonan iki bakal dadi:

id id_pegawe jeneng taun deadline
1 1 Ndandani bug ing frontend 2022 2022-06-01
2 2 Ndandani bug ing backend 2022 2022-06-15
3 5 Tuku kopi 2022 2022-07-01
4 5 Tuku kopi 2022 2022-08-01
5 5 Tuku kopi 2022 2022-09-01
6 (NULL) Ngresiki kantor (NULL) (NULL)
7 4 Seneng urip (NULL) (NULL)
8 6 Seneng urip (NULL) (NULL)

Kita bisa ndeleng manawa kabeh baris duwe taun sing padha, mula gunakake rong kolom - taun lan wulan. Versi kapindho pitakon kita bakal katon kaya iki:

SELECT
    id,
    employee_id ,
    name,
    YEAR(deadline) AS year,
    MONTH(deadline) AS month,
    deadline
FROM task

Asil saka pitakonan iki bakal dadi:

id id_pegawe jeneng taun wulan deadline
1 1 Ndandani bug ing frontend 2022 6 2022-06-01
2 2 Ndandani bug ing backend 2022 6 2022-06-15
3 5 Tuku kopi 2022 7 2022-07-01
4 5 Tuku kopi 2022 8 2022-08-01
5 5 Tuku kopi 2022 9 2022-09-01
6 (NULL) Ngresiki kantor (NULL) (NULL) (NULL)
7 4 Seneng urip (NULL) (NULL) (NULL)
8 6 Seneng urip (NULL) (NULL) (NULL)

Aku ora bakal ngandhani carane nglumpukake tugas miturut taun lan sasi - sampeyan wis sinau iki: gunakake operator GROUP BY.