v SQL , data jsou pro nováčky komplikovaná, protože při práci s databází musí formát dat v tabulce odpovídat vstupním datům, které chcete vložit. V různých scénářích se místo data používá datum a čas (čas je také spojen s datem).
Chcete-li uložit datum nebo hodnotu data a času do databáze, MySQL nabízí následující typy dat:
| DATUM | formát RRRR-MM-DD |
| ČAS SCHŮZKY | formát: YYYY-MM-DD HH:MI: SS |
| ČASOVÉ RAZÍTKO | formát: YYYY-MM-DD HH:MI: SS |
| ROK | formát YYYY nebo YY |
Nyní pojďme k některým oblíbeným funkcím ve funkcích data SQL.
NYNÍ()
Vrátí aktuální datum a čas.
Dotaz:
SELECT NOW();>
Výstup:

index seznamu
AKTUÁLNÍ()
Vrátí aktuální datum.
Dotaz:
SELECT CURDATE();>
Výstup:

CURTIME()
Vrátí aktuální čas.
Dotaz:
SELECT CURTIME();>
Výstup:

DATUM()
Extrahuje část data z výrazu datum nebo datum/čas. Příklad: Pro níže uvedenou tabulku s názvem „Test“
| Id | název | Čas narození |
|---|---|---|
| 4120 | Praxe | 1996-09-26 16:44:15,581 |
Dotaz:
SELECT Name, DATE(BirthTime) AS BirthDate FROM Test;>
Výstup:
| název | Datum narození |
|---|---|
| Praxe | 1996-09-26 |
VÝPIS()
Vrátí jednu část data/času.
Syntax
EXTRACT(jednotka OD datum);
Lze uvažovat o několika jednotkách, ale pouze některé se používají jako např MIKROKUNDA, DRUHINA, MINUTA, HODINA, DEN, TÝDEN, MĚSÍC, ČTVRTLETÍ, ROK atd. A ‚datum‘ je platný výraz data. Příklad: Pro níže uvedenou tabulku s názvem „Test“
| Id | název | Čas narození |
|---|---|---|
| 4120 | Praxe | 1996-09-26 16:44:15,581 |
Dotaz:
SELECT Name, Extract(DAY FROM BirthTime) AS BirthDay FROM Test;>
Výstup:
| název | Narozeniny |
|---|---|
| Praxe | 26 |
Dotaz:
SELECT Name, Extract(YEAR FROM BirthTime) AS BirthYear FROM Test;>
Výstup:
| název | Rok narození |
|---|---|
| Praxe | devatenáctset devadesát šest |
Dotaz:
SELECT Name, Extract(SECOND FROM BirthTime) AS BirthSecond FROM Test;>
Výstup:
| název | Druhé narození |
|---|---|
| Praxe | 581 |
DATE_ADD()
Přidá k datu zadaný časový interval.
Syntax:
DATE_ADD(datum, INTERVAL typ expr);
Kde, datum – platný výraz data a výraz je počet intervalů, které chceme přidat. a typ může být jeden z následujících: MIKROSECOND, SECOND, MINUTE, HODINA, DEN, TÝDEN, MĚSÍC, ČTVRTLETÍ, ROK atd. Příklad: Pro níže uvedenou tabulku s názvem ‚Test‘
| Id | název | Čas narození |
|---|---|---|
| 4120 | Praxe | 1996-09-26 16:44:15,581 |
Dotaz:
SELECT Name, DATE_ADD(BirthTime, INTERVAL 1 YEAR) AS BirthTimeModified FROM Test;>
Výstup:
| název | BirthTimeModified |
|---|---|
| Praxe | 1997-09-26 16:44:15,581 |
Dotaz:
SELECT Name, DATE_ADD(BirthTime, INTERVAL 30 DAY) AS BirthDayModified FROM Test;>
Výstup:
| název | BirthDayModified |
|---|---|
| Praxe | 1996-10-26 16:44:15,581 |
Dotaz:
SELECT Name, DATE_ADD(BirthTime, INTERVAL 4 HOUR) AS BirthHourModified FROM Test;>
Výstup:
| název | Druhé narození |
|---|---|
| Praxe | 1996-10-26 20:44:15,581 |
DATE_SUB()
Odečte zadaný časový interval od data. Syntaxe pro DATE_SUB je stejná jako pro DATE_ADD, rozdíl je pouze v tom, že DATE_SUB se používá k odečtení daného intervalu data.
DATEDIFF()
Vrátí počet dní mezi dvěma daty.
Syntax:
DATEDIFF(datum1, datum2);
datum1 a datum2 – výraz data/času
distributivní zákon booleovská algebra
Dotaz:
SELECT DATEDIFF('2017-01-13','2017-01-03') AS DateDiff;> Výstup:
| DateDiff |
|---|
| 10 |
DATOVÝ FORMÁT()
Zobrazuje data/čas v různých formátech.
Syntax:
DATE_FORMAT(datum,formát);
datum je platné datum a formát určuje výstupní formát pro datum/čas. Formáty, které lze použít, jsou:
- %a-Zkrácený název dne v týdnu (ne-so)
- %b-Zkrácený název měsíce (leden–prosinec)
- %c-měsíc, číselně (0-12)
- %D-den v měsíci s anglickou příponou (0., 1., 2., 3.)
- %d-den v měsíci, číselně (00-31)
- %e-Day v měsíci, číselně (0-31)
- %f-mikrosekund (000000-999999)
- %H hodin (00-23)
- %h hodin (01-12)
- %I-Hour (01-12)
- %i-minuty, číselné (00-59)
- %j-den v roce (001-366)
- %k-hodina (0-23)
- %l hodina (1–12)
- Název %M-měsíc (leden–prosinec)
- %m-měsíc, číselně (00-12)
- %p-AM nebo PM
- %r-Time, 12 hodin (hh:mm: ss následované AM nebo PM)
- %S-sekund (00-59)
- %s-sekund (00-59)
- %T-Time, 24 hodin (hh:mm:ss)
- %U-Week (00-53), kde neděle je první den v týdnu
- %u-týden (00-53), kde pondělí je první den v týdnu
- %V-týden (01-53), kde neděle je první den v týdnu, používá se s %X
- %v-týden (01-53), kde pondělí je první den v týdnu, používá se s %x
- %W-Název dne v týdnu (neděle–sobota)
- %w-den v týdnu (0=neděle, 6=sobota)
- %X-Year pro týden, kde neděle je prvním dnem v týdnu, čtyři číslice, používané s %V
- %x-Year pro týden, kde pondělí je první den v týdnu, čtyři číslice, používané s %v
- %Y-rok, číselný, čtyřmístný
- %y-rok, číselný, dvoumístný