3.1 Lista de funcții pentru lucrul cu data și ora
Data și ora sunt unul dintre cele mai comune tipuri de date stocate în baze de date. De aceea, lista de funcții pentru lucrul cu ele este foarte mare. Iată cele mai populare:
# | Funcţie | Descriere |
---|---|---|
1 | CURDATE() | Returnează data curentă |
2 | CURTIME() | Returnează ora curentă |
3 | ACUM(), ORA LOCAL() | Returnează data și ora curente |
4 | AN() | Returnează anul de la data |
5 | LUNĂ() | Returnează luna de la o dată |
6 | DAY(), DAYOFMONTH() | Returnează ziua de la o dată |
7 | ORA() | Se întoarce la doar câteva ore |
8 | MINUT() | Anunță minute de la ora |
9 | AL DOILEA() | Returnează secunde de la timp |
10 | DAYNAME() | Returnează numele zilei săptămânii: luni,... |
unsprezece | MONTHNAME() | Returnează numele lunii: ianuarie,... |
12 | SĂPTĂMÂNĂ() | Returnează săptămâna de la o dată |
13 | ZIUA SĂPTĂMNICĂ() | Returnează numărul zilei săptămânii: luni - 0, marți - 1 |
14 | WEEKOFYEAR() | Returnează numărul săptămânii din an |
15 | ZI A SĂPTĂMÂNII() | Returnează numărul zilei săptămânii: duminică - 1, luni - 2 |
16 | DAYOFYEAR() | Returnează ziua anului: 1-366 |
17 | DATA() | Returnează doar data dintr-un obiect „datetime”. |
18 | ADDDATE() | Adaugă zile la o dată |
19 | SUBDATE() | Scade zile dintr-o dată |
20 | ADDTIME() | Adaugă din când în când |
21 | SUBTIME() | Scade timpul din timp |
Am grupat în mod deliberat funcțiile în grupuri mici pentru a fi mai ușor de înțeles cum să lucrezi cu ele. Mai jos vom lua în considerare câte o funcție din fiecare grup.
Puteți găsi o listă completă de funcții pentru lucrul cu data și ora la linkul: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html
3.2 Funcții de apelare
Apropo, din moment ce învățăm atât de multe funcții, cred că este util să menționăm că operatorul SELECT
nu trebuie să fie folosit cu FROM
. Poate returna valoarea oricărei expresii. A cărui vedere generală este dată de șablon:
SELECT expression
Și dacă doriți să apelați o funcție, atunci trebuie să scrieți cod ca:
SELECT function(options)
Mai jos voi da câteva exemple de funcționare a operatorului SELECT
fără a recurge la tabele:
# | Cerere | Rezultat |
---|---|---|
1 | SELECTARE 1+1 | 2 |
2 | SELECTARE 13 MOD 5 | 3 |
3 | SELECTARE RAND() | 0,20771444235715497 |
4 | SELECTARE CURDATE() | 2022-06-04 |
5 | SELECTARE CURTIME() | 00:06:02 |
6 | SELECTAȚI ACUM() | 2022-06-04 00:06:43 |
Și, după cum puteți vedea, în tabelul de mai sus, pentru a obține data și ora curente, trebuie doar să utilizați una dintre funcțiile:
CURDATE()
- data curenta;CURTIME()
- ora curentă;NOW()
– data și ora curente.
3.3 Gruparea datelor pe an și lună
Să ne amintim tabelul nostru de sarcini cu sarcini pentru angajați. Să încercăm să grupăm sarcinile din acest tabel pe ani. Pentru a face acest lucru, folosim funcția YEAR()
, care returnează anul de la data transmisă acestuia.
Prima versiune a interogării noastre va arăta astfel:
SELECT
id,
employee_id ,
name,
YEAR(deadline) AS year,
deadline
FROM task
Rezultatul acestei interogări va fi:
id | card de identitate al angajatului | Nume | an | Termen limită |
---|---|---|---|---|
1 | 1 | Remediați o eroare pe front-end | 2022 | 2022-06-01 |
2 | 2 | Remediați o eroare pe backend | 2022 | 2022-06-15 |
3 | 5 | Cumpără cafea | 2022 | 2022-07-01 |
4 | 5 | Cumpără cafea | 2022 | 2022-08-01 |
5 | 5 | Cumpără cafea | 2022 | 2022-09-01 |
6 | (NUL) | Curățați biroul | (NUL) | (NUL) |
7 | 4 | Bucură-te de viață | (NUL) | (NUL) |
8 | 6 | Bucură-te de viață | (NUL) | (NUL) |
Putem vedea că toate rândurile au același an, așa că să folosim două câmpuri - an și lună. A doua versiune a interogării noastre va arăta astfel:
SELECT
id,
employee_id ,
name,
YEAR(deadline) AS year,
MONTH(deadline) AS month,
deadline
FROM task
Rezultatul acestei interogări va fi:
id | card de identitate al angajatului | Nume | an | lună | Termen limită |
---|---|---|---|---|---|
1 | 1 | Remediați o eroare pe front-end | 2022 | 6 | 2022-06-01 |
2 | 2 | Remediați o eroare pe backend | 2022 | 6 | 2022-06-15 |
3 | 5 | Cumpără cafea | 2022 | 7 | 2022-07-01 |
4 | 5 | Cumpără cafea | 2022 | 8 | 2022-08-01 |
5 | 5 | Cumpără cafea | 2022 | 9 | 2022-09-01 |
6 | (NUL) | Curățați biroul | (NUL) | (NUL) | (NUL) |
7 | 4 | Bucură-te de viață | (NUL) | (NUL) | (NUL) |
8 | 6 | Bucură-te de viață | (NUL) | (NUL) | (NUL) |
Nu vă voi spune cum să grupați sarcinile pe an și lună - ați studiat deja acest lucru: utilizați operatorul GROUP BY
.