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 SELECT
nem 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 SELECT
tá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
.
GO TO FULL VERSION