logo

SQL funkce data a času

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:

nyní výstupní obrázek metody

index seznamu

AKTUÁLNÍ()

Vrátí aktuální datum.

Dotaz:

SELECT CURDATE();>

Výstup:

VÝSTUP2

CURTIME()

Vrátí aktuální čas.

Dotaz:

SELECT CURTIME();>

Výstup:

VÝSTUP3

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ý