3.1 A dátummal és idővel kapcsolatos funkciók listája

A dátum és az idő az adatbázisokban tárolt adatok egyik leggyakoribb típusa. Éppen ezért a velük való munkavégzés funkcióinak listája nagyon nagy. Íme a legnépszerűbbek:

# Funkció Leírás
1 TURÁTUM() Az aktuális dátumot adja vissza
2 CURTIME() Az aktuális időt adja vissza
3 MOST(), HELYI IDŐ() Az aktuális dátumot és pontos időt adja vissza
4 ÉV() A dátumtól számított évet adja vissza
5 HÓNAP() A dátumtól számított hónapot adja vissza
6 DAY(), DAYOFMONTH() A dátumot adja vissza egy randevúról
7 ÓRA() Csak órákkal tér vissza
8 PERC() Bejelenti a perceket az időtől
9 MÁSODIK() Az időből másodperceket ad vissza
10 DAYNAME() A hét napjának nevét adja vissza: hétfő, ...
tizenegy HÓNAPNÉV() A hónap nevét adja vissza: január, ...
12 HÉT() Egy randevúról adja vissza a hetet
13 HÉTKÖZNAP() A hét napjának számát adja vissza: hétfő - 0, kedd - 1
14 WEEKOFYEAR() Az év hét számát adja vissza
15 A HÉT NAPJA() A hét napjának számát adja vissza: vasárnap - 1, hétfő - 2
16 ÉV NAP () Az év napját adja vissza: 1-366
17 DÁTUM() Csak a dátumot adja vissza egy "datetime" objektumból
18 HOZZÁADÁS() Napokat ad a dátumhoz
19 SUBDATE() Napokat von le egy dátumból
20 HOZZÁADÁSI IDŐ() Időről időre hozzáad
21 SUBTIME() Kivonja az időt az időből

Szándékosan kis csoportokba csoportosítottam a funkciókat, hogy könnyebb legyen megérteni, hogyan kell velük dolgozni. Az alábbiakban minden csoportból egy-egy funkciót veszünk figyelembe.

A dátummal és idővel kapcsolatos funkciók teljes listáját a következő linken találja: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html

3.2 Hívási funkciók

Egyébként, mivel nagyon sok függvényt tanulunk, szerintem hasznos megemlíteni, hogy az operátort SELECTnem kell a -val használni FROM. Bármely kifejezés értékét visszaadhatja. Ennek általános nézetét a sablon adja:

SELECT expression

És ha valamilyen függvényt szeretne meghívni, akkor olyan kódot kell írnia, mint:

SELECT function(options)

Az alábbiakban néhány példát mutatok be az operátor működésére SELECTtáblázatok nélkül:

# Kérés Eredmény
1 KIVÁLASZTÁS 1+1 2
2 13 MOD 5 KIVÁLASZTÁSA 3
3 RAND() 0,20771444235715497
4 KIVÁLASZTÁS() 2022-06-04
5 SELECT CURTIME() 00:06:02
6 KIVÁLASZTÁS MOST() 2022-06-04 00:06:43

És amint láthatja, a fenti táblázatban az aktuális dátum és idő megtekintéséhez csak az egyik funkciót kell használnia:

  • CURDATE()- mostani dátum;
  • CURTIME()- aktuális idő;
  • NOW()– aktuális dátum és idő.

3.3 Adatok csoportosítása év és hónap szerint

Emlékezzünk vissza a feladattáblázatunkra, melyben a munkatársaknak szóló feladatokat tartalmazzák. Próbáljuk meg ebből a táblázatból évek szerint csoportosítani a feladatokat. Ehhez a függvényt használjuk YEAR(), amely az átadás dátumától számított évet adja vissza.

Lekérdezésünk első verziója így fog kinézni:

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

A lekérdezés eredménye a következő lesz:

id munkavállalói azonosító név év határidő
1 1 Javítson ki egy hibát a kezelőfelületen 2022 2022-06-01
2 2 Javítson ki egy hibát a háttérben 2022 2022-06-15
3 5 Vegyél kávét 2022 2022-07-01
4 5 Vegyél kávét 2022 2022-08-01
5 5 Vegyél kávét 2022 2022-09-01
6 (NULLA) Takarítsd ki az irodát (NULLA) (NULLA)
7 4 Élvezd az életet (NULLA) (NULLA)
8 6 Élvezd az életet (NULLA) (NULLA)

Láthatjuk, hogy minden sorban ugyanaz az évszám van, ezért használjunk két mezőt - évet és hónapot. Lekérdezésünk második verziója így fog kinézni:

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

A lekérdezés eredménye a következő lesz:

id munkavállalói azonosító név év hónap határidő
1 1 Javítson ki egy hibát a kezelőfelületen 2022 6 2022-06-01
2 2 Javítson ki egy hibát a háttérben 2022 6 2022-06-15
3 5 Vegyél kávét 2022 7 2022-07-01
4 5 Vegyél kávét 2022 8 2022-08-01
5 5 Vegyél kávét 2022 9 2022-09-01
6 (NULLA) Takarítsd ki az irodát (NULLA) (NULLA) (NULLA)
7 4 Élvezd az életet (NULLA) (NULLA) (NULLA)
8 6 Élvezd az életet (NULLA) (NULLA) (NULLA)

Nem mondom meg, hogyan csoportosítsd a feladatokat év és hónap szerint - ezt már tanultad: használja az operátort GROUP BY.