3.1 Liste over funktioner til at arbejde med dato og klokkeslæt

Dato og klokkeslæt er en af ​​de mest almindelige typer data gemt i databaser. Derfor er listen over funktioner til at arbejde med dem meget stor. Her er de mest populære:

# Fungere Beskrivelse
1 CURDATE() Returnerer den aktuelle dato
2 CURTIME() Returnerer det aktuelle tidspunkt
3 NU(), LOKALTID() Returnerer den aktuelle dato og det aktuelle klokkeslæt
4 ÅR() Returnerer år fra dato
5 MÅNED() Returnerer måneden fra en dato
6 DAY(), DAYOFMONTH() Returnerer dagen fra en dato
7 TIME() Returnerer kun timer fra tidspunktet
8 MINUT() Meddeler minutter fra tidspunkt
9 ANDEN() Returnerer sekunder fra tid
10 DAYNAME() Returnerer navnet på ugedagen: mandag, ...
elleve MONTHNAME() Returnerer månedens navn: januar, ...
12 UGE() Returnerer ugen fra en dato
13 UGEDAG() Returnerer nummeret på ugedagen: mandag - 0, tirsdag - 1
14 UGEÅR() Returnerer årets ugenummer
15 UGEDAG() Returnerer nummeret på ugedagen: søndag - 1, mandag - 2
16 DAGÅR() Returnerer årets dag: 1-366
17 DATO() Returnerer kun datoen fra et "datetime"-objekt
18 ADDDATE() Tilføjer dage til en dato
19 SUBDATE() Trækker dage fra en dato
20 TILFØJSTID() Tilføjer tid til anden
21 SUBTIME() Trækker tid fra tid

Jeg grupperede bevidst funktionerne i små grupper for at gøre det lettere at forstå, hvordan man arbejder med dem. Nedenfor vil vi overveje en funktion fra hver gruppe.

Du kan finde en komplet liste over funktioner til at arbejde med dato og tid på linket: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html

3.2 Opkaldsfunktioner

Forresten, da vi lærer så mange funktioner, tror jeg, det er nyttigt at nævne, at operatøren SELECTikke skal bruges med FROM. Det kan returnere værdien af ​​ethvert udtryk. Den generelle visning af dette er givet af skabelonen:

SELECT expression

Og hvis du vil kalde en funktion, så skal du skrive kode som:

SELECT function(options)

Nedenfor vil jeg give nogle eksempler på driften af ​​operatøren SELECTuden brug af tabeller:

# Anmodning Resultat
1 VÆLG 1+1 2
2 VÆLG 13 MOD 5 3
3 VÆLG RAND() 0,207714444235715497
4 VÆLG CURDATE() 2022-06-04
5 VÆLG KURTID() 00:06:02
6 VÆLG NU() 04-06-2022 00:06:43

Og, som du kan se, i tabellen ovenfor, for at få den aktuelle dato og klokkeslæt, skal du blot bruge en af ​​funktionerne:

  • CURDATE()- nuværende dato;
  • CURTIME()- nuværende tid;
  • NOW()– aktuelle dato og klokkeslæt.

3.3 Gruppering af data efter år og måned

Lad os huske vores opgavetabel med opgaver til medarbejdere. Lad os prøve at gruppere opgaver fra denne tabel efter år. For at gøre dette bruger vi funktionen YEAR(), som returnerer året fra datoen overført til det.

Den første version af vores forespørgsel vil se sådan ud:

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

Resultatet af denne forespørgsel vil være:

id Medarbejder-ID navn år deadline
1 1 Ret en fejl på frontend 2022 2022-06-01
2 2 Ret en fejl på backend 2022 2022-06-15
3 5 Køb kaffe 2022 2022-07-01
4 5 Køb kaffe 2022 2022-08-01
5 5 Køb kaffe 2022 2022-09-01
6 (NUL) Ryd op på kontoret (NUL) (NUL)
7 4 Nyd livet (NUL) (NUL)
8 6 Nyd livet (NUL) (NUL)

Vi kan se, at alle rækker har samme årstal, så lad os bruge to felter - år og måned. Den anden version af vores forespørgsel vil se sådan ud:

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

Resultatet af denne forespørgsel vil være:

id Medarbejder-ID navn år måned deadline
1 1 Ret en fejl på frontend 2022 6 2022-06-01
2 2 Ret en fejl på backend 2022 6 2022-06-15
3 5 Køb kaffe 2022 7 2022-07-01
4 5 Køb kaffe 2022 8 2022-08-01
5 5 Køb kaffe 2022 9 2022-09-01
6 (NUL) Ryd op på kontoret (NUL) (NUL) (NUL)
7 4 Nyd livet (NUL) (NUL) (NUL)
8 6 Nyd livet (NUL) (NUL) (NUL)

Jeg vil ikke fortælle dig, hvordan du grupperer opgaver efter år og måned - du har allerede studeret dette: brug operatøren GROUP BY.