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.
GO TO FULL VERSION