Gyakorlati alapok III.

SQL (adatbázis)

 

SQL - dátum függvények

 

Folytatjuk az előző fejezetekben bemutatott SQL-függvények felhasználását egyre bonyolultabb lekérdezések és/vagy több tábla összevonása formájában. Néhány új SQL-függvény is fel fog merülni, ezek az előfordulásuk előtti bekezdésben kerülnek ismertetésre. Továbbra is kiindulópontunk az auto adatbázis, amely egy teljes, átfogó adatszerkezet egy autókereskedés és szervíz komplex, adatbázisos modellezésére.

 

Az auto adatbázis a következő további komponenesekből áll, ezen komponenseket táblák és a bennük definiált attribútumok (oszlopok) reprezentálják:

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Erősen ajánlom, hogy az alábbi, néha rendkívül bonyolult SQL-lekérdezések előtt nagyon alaposan tanulmányozzuk át az auto adatbázis összes tábláját és rekordjait. Az eredményes SQL-lekérdezésekhez meg kell értenünk az autókereskedés összes modellezett munkakörülményét!

 

Függvény-előzmények:

További függvények:

LAST_DAY

Visszaadja a paraméterként beadott hónap utolsó napját. Például:

 

SELECT LAST_DAY("2020-01-01")

 

Végeredmény:

2020-01-31

 

Természetesen figyelembeveszi a szökőéveket is. Például 2000.02 hó utolsó napja 29., mert ezen esztendő szökőév volt:

 

SELECT LAST_DAY("2000-02-20")

 

Végeredmény:

2000-02-29

 

SYSDATE

Visszaadja az aktuális dátumot és időt. Például:

 

SELECT SYSDATE()

 

Végeredmény:

2020-01-02 10:46:24

 

DATE_ADD

Visszaadja a dátumot a paraméterben beállítottak szerint. Például írja kí az alkalmazottak táblájából a belépés dátumát és annak 5 hónappal megnövelt értékét:

 

SELECT belepes, DATE_ADD(belepes, INTERVAL 5 MONTH) FROM alkalmazott

 

Végeredmény:

www.informatika-programozas.hu - Java + SQL (adatbázis)

 

Paraméterként negatív érték is megadható. Például írja kí az alkalmazottak táblájából a belépés dátumát és annak 5 hónappal csökkentett értékét:

 

SELECT belepes, DATE_ADD(belepes, INTERVAL -5 MONTH) FROM alkalmazott

 

Végeredmény:

www.informatika-programozas.hu - Java + SQL (adatbázis)

 

Paraméterként a következő (kötelezően megadandó) időmértékek lehetnek:

DATE_FORMAT

Ezen függvénnyel a dátum kimeneti fomátumát tudjuk befolyásolni. Például irassuk ki az AUTOK táblából a NORMAL autócsoport minden autójának rendszámát, típusnevét és vásárlási időpontját a the 6 day of Jun, 1994 dátumformátumhoz hasonló módon:

 

SELECT rendszam,tipus_nev, DATE_FORMAT(vasarlas_datuma, '%d %M %Y') FROM autok WHERE auto_csop_nev='NORMAL'

 

Végeredmény:

www.informatika-programozas.hu - Java + SQL (adatbázis)

 

Paraméterként a következő (kötelezően megadandó) dátumformátumok lehetségesek:

 

www.informatika-programozas.hu - Java + SQL (adatbázis)

Forrás - Source: https://www.w3schools.com/sql/func_mysql_date_format.asp

 

PERIOD_DIFF

Visszaadja a paraméterként megadott 2 időpont közti hónapok számát. Például hány hónap van 2018.01 és 2017.01 között?

 

SELECT PERIOD_DIFF(201701, 201801)

 

Végeredmény:

-12

 

DAYNAME

Megállapítja a paraméterként beadott dátum melyik napra esett. Például melyik nap volt 2020.01.07?

 

SELECT DAYNAME('2020-01-07')

 

Végeredmény:

Tuesday

 

STR_TO_DATE

Szabványos dátumformátummás alakítja a részlegesen szavakkal kiírt dátumokat. Például 1980. január 01:

 

SELECT STR_TO_DATE("1980 januar 1", "%Y %M %d")

 

Végeredmény:

1980-01-01

 

Feladatok

 

1 - Irassuk ki az AUTOK táblából a NORMAL autócsoport minden autójának rendszámát, típusnevét és vásárlási időpontját 'the 6 day of Jun, 1994'-hez hasonló formában!

2 - Irassa ki azokat a rendelés adatokat, ahol a rendelés feladása és a kölcsönzés kezdete között 1 hétnél kevesebb idő van!

3 - Készítsen listát az összes olyan rendelés tételről, ahol a kölcsönzési idő 10 napnál hosszabb!

4 - Irassa ki az 1994.03.30 utáni rendelések dátumait!

5 - Irassa ki a rendelések táblájából az ügyfelek számát, a rendelésük dátumát, valamint a kölcsönzés kezdetének időpontját a magyar szokásoknak megfelelően (év, hó, nap)!

6 - Írja ki a mai dátumot követő 90. nap dátumát (SYSDATE)!

7 - Írja kí az alkalmazottak táblájából a belépés dátumát és annak 5 hónappal megnövelt értékét!

8 - Állapítsa meg a 1900. januári és a 2000. januári időszak közötti hónapok számát!

9 - Állapítsa meg, hogy az alkalmazottak belépési dátumai milyen napra estek!

10 - Állapítsa meg a jelenlegi napot (például szerda)!

11 - Irassa ki a '1994.06.07.' karaktersorozat hagyományos amerikai dátumformázott alakját (hónap-nap-év)!

12 - Írja ki az alkalmazottak belépésének dátumát 'Év-hónap-nap' formában!

13 - Alakítsa át kiírt születési dátumát dátumformátummá (például 1980 januar 1)!