Manipulácia dátum a čas údaje v MySQL sú nevyhnutné pre mnoho databázových operácií, najmä pokiaľ ide o spracovanie časových pečiatok, plánovanie úloh alebo generovanie na základe času. MySQL poskytuje množstvo funkcií dátumu a času, ktoré pomáhajú používateľom pracovať s hodnotami dátumu, vykonávať výpočty a podľa potreby ich formátovať.
Tieto funkcie umožňujú vývojárom vykonávať výpočty extrahovať špecifické časti dátumu alebo dokonca formátovať výstup pre lepšiu čitateľnosť. V tomto článku preskúmame najbežnejšie používané dátumové funkcie MySQL, vysvetlíme ich syntax, uvedieme príklady a prevedieme vás, ako ich efektívne používať.
Porozumenie typom údajov dátumu a času MySQL
Pri práci s dátumami v MySQL to môže byť pre začiatočníkov zložité najmä preto, že formát dátumu v databáze musí zodpovedať formátu vstupných údajov pri vkladaní. V mnohých prípadoch namiesto použitia jednoduchého dátumu možno budeme musieť uložiť dátum aj čas v závislosti od prípadu použitia. Toto je miesto DATETIME a TIMESTAMP do hry vstupujú dátové typy.
MySQL poskytuje nasledujúce typy údajov na ukladanie hodnôt dátumu a času:
1. DÁTUM :
- Formátovať :
YYYY-MM-DD - Používa sa na uloženie iba dátumu (rok mesiac a deň) bez časovej zložky.
2. DATETIME :
- Formátovať :
YYYY-MM-DD HH:MM:SS - Ukladá dátum aj čas, čo je užitočné, keď potrebujete spolu s dátumom zachytiť aj konkrétne časy.
3. ČASOVÁ ZNÁMKA :
- Formátovať :
YYYY-MM-DD HH:MM:SS - Podobne ako
DATETIMEaleTIMESTAMPzahŕňa aj podporu časového pásma. Pri úprave záznamu sa automaticky aktualizuje na aktuálnu časovú pečiatku, čo je ideálne na sledovanie zmien záznamov v priebehu času.
4. ROK :
- Formátovať :
YYYYaleboYY - Používa sa na ukladanie iba roku, čo môže byť užitočné pre aplikácie, kde je potrebný iba rok, ako je sledovanie rokov narodenia alebo fiškálnych rokov.
Funkcie dátumu a času MySQL
Teraz sa poďme ponoriť do funkcií dátumu MySQL, ktoré môžete použiť na efektívnu manipuláciu a dopytovanie údajov dátumu a času.
operátor java
1. TERAZ()- Získajte aktuálny dátum a čas
The TERAZ() funkcia načíta aktuálny dátum a čas YYYY-MM-DD HH:MI:SS formát.
dotaz:
SELECT NOW();
výstup:

2. CURDATE() - Získať iba aktuálny dátum
Ak potrebujeme iba aktuálny dátum bez časovej časti, ktorú môžeme použiť CURDATE() ktorý vráti dátum v YYYY-MM-DD formát.
dotaz:
SELECT CURDATE();
výstup:

3. CURTIME() - Získať iba aktuálny čas
Funkcia CURTIME() vráti aktuálny čas v HH:MI:SS formát bez dátumu.
dotaz:
SELECT CURTIME();
výstup:

4. DATE() - Extrahuje časť dátumu z hodnoty DATETIME
TheDATE()funkcia extrahuje iba dátumovú časť z aDATETIMEaleboTIMESTAMPhodnota zahodí čas.
Príklad: Pre stôl tzv users :
| Id | Meno | Čas narodenia |
|---|---|---|
| 4120 | Prax | 1996-09-26 16:44:15.581 |
dotaz:
SELECT Name DATE(BirthTime)
AS BirthDate FROM Test;
výstup:
zaujatosť a rozptyl
| Meno | Dátum narodenia |
|---|---|
| Prax | 1996-09-26 |
5. EXTRACT() – Extrahovať časti špecifického dátumu
EXTRACT()sa používa na extrahovanie konkrétnych častí dátumu, ako je deň, mesiac alebo rok. Táto funkcia môže byť užitočná najmä pri analýze alebo porovnávaní rôznych častí dátumu. Do úvahy pripadá viacero jednotiek ale len niektoré sa používajú ako napr MIKROKRUHÁ DRUHÁ MINÚTA HODINA DEŇ TÝŽDEŇ MESIAC ŠTVRŤROK atď. A „dátum“ je platný výraz dátumu.
Syntax:
EXTRACT(jednotka OD dátumu);
Deň dotazu na extrahovanie:
SELECT Name Extract(DAY FROM
BirthTime) AS BirthDay FROM Test;
výstup:
| Meno | narodeniny |
|---|---|
| Prax | 26 |
Rok na extrahovanie dopytu:
SELECT Name Extract(YEAR FROM BirthTime)
AS BirthYear FROM Test;
výstup:
| Meno | Rok narodenia |
|---|---|
| Prax | 1996 |
Dopyt na extrahovanie sekúnd:
SELECT Name Extract(SECOND FROM
BirthTime) AS BirthSecond FROM Test;
výstup:
| Meno | Druhé narodenie |
|---|---|
| Prax | 581 |
6. DATE_ADD() - Pridanie intervalov k dátumu
The DATE_ADD() funkcia umožňuje pridať časové intervaly (napr. dni mesiace roky) k dátumu aleboDATETIMEhodnotu.
Syntax:
DATE_ADD(dátum INTERVAL typ expr);
programovanie prepínača v jave
Príklad: Pre tabuľku nižšie s názvom „ Test '
| Id | Meno | Čas narodenia |
|---|---|---|
| 4120 | Prax | 1996-09-26 16:44:15.581 |
Dopyt na Pridajte 1 rok k dátumu
SELECT Name DATE_ADD(BirthTime INTERVAL
1 YEAR) AS BirthTimeModified FROM Test;
výstup:
| Meno | BirthTimeModified |
|---|---|
| Prax | 1997-09-26 16:44:15.581 |
Dopyt na pridanie 30 dní k dátumu
SELECT Name DATE_ADD(BirthTime
INTERVAL 30 DAY) AS BirthDayModified FROM Test;
výstup:
| Meno | BirthDayModified |
|---|---|
| Prax | 1996-10-26 16:44:15.581 |
Dopyt na pridanie 4 hodín k dátumu
SELECT Name DATE_ADD(BirthTime INTERVAL
4 HOUR) AS BirthHourModified FROM Test;
výstup:
| Meno | Druhé narodenie |
|---|---|
| Prax | 1996-10-26 20:44:15.581 |
7. DATEDIFF() - Nájdite rozdiel medzi dvoma dátumami
Táto funkcia vráti počet dní medzi dvoma dátumami.
Syntax:
DATEDIFF(intervaldate1 datum2);
zoradený zoznam polí v jazyku Javainterval - minúta/hodina/mesiac/rok atď
dátum1 a dátum2 – výraz dátumu a času
Dopyt na Nájdite rozdiel medzi dvoma dátumami
SELECT DATEDIFF(day '2017-01-13' '2017-01-03') AS DateDiff;
výstup:
| DateDiff |
|---|
8. DATE_FORMAT() – Formát dátumu a času
DATE_FORMAT() nám umožňuje formátovať a DATE DATETIME alebo ČASOVÁ ZNÁMKA hodnotu do vlastného formátu pomocou zástupných symbolov.
ako spustiť skript v linuxe
Syntax:
DATE_FORMAT(formát dátumu);
dátum je platný dátum a formát určuje výstupný formát pre dátum/čas. Formáty, ktoré možno použiť, sú:
- %a-Skrátený názov dňa v týždni (Ne-So)
- %b-Skrátený názov mesiaca (január – dec)
- %c-mesačné číselné (0-12)
- %D – Deň v mesiaci s anglickou príponou (0. 1. 2. 3.)
- %d-deň v mesiaci numerický (00-31)
- %e-Day v mesiaci numerické (0-31)
- %f-mikrosekúnd (000000-999999)
- %H-Hod (00-23)
- %h-hodina (01-12)
- %I-Hour (01-12)
- %i-minút číselne (00-59)
- %j-deň v roku (001-366)
- %k-hodina (0-23)
- %l-hodina (1-12)
- Názov %M-mesiaca (január – december)
- %m-mesačné číselné (00-12)
- %p-AM alebo PM
- %r-Time 12 hodín (hh:mm: ss nasledované AM alebo PM)
- %S-sekúnd (00-59)
- %s-sekúnd (00-59)
- %T-Time 24 hodín (hh:mm:ss)
- %U-Week (00-53), kde nedeľa je prvým dňom týždňa
- %u-týždeň (00-53), kde pondelok je prvý deň v týždni
- %V-týždeň (01-53), kde nedeľa je prvý deň týždňa používaný s %X
- %v-týždeň (01-53), kde pondelok je prvý deň v týždni používaný s %x
- %W-Názov dňa v týždni (nedeľa – sobota)
- %w-deň v týždni (0=nedeľa 6=sobota)
- %X-Year pre týždeň, kde nedeľa je prvým dňom v týždni, štyri číslice používané s %V
- %x-Year pre týždeň, kde pondelok je prvý deň týždňa, štyri číslice používané s %v
- %Y-rok číselné štyri číslice
- %y-rok číselné dve číslice
Dopyt na formátovanie dátumu
SELECT DATE_FORMAT('2025-04-10 12:34:56' '%W %M %d %Y') AS formatted_date;výstup:
| Formátovaný_dátum |
|---|
| štvrtok 10. apríla 2025 |
Najlepšie postupy pre prácu s dátumom a časom v MySQL
1. Vždy používajte správne formáty dátumu
Pri vkladaní alebo aktualizácii dátumov sa uistite, že dodržiavate očakávané formáty MySQL (YYYY-MM-DD YYYY-MM-DD HH:MI:SS). To zaisťuje, že vaše dotazy vrátia očakávané výsledky bez chýb.
2. Úvahy o časovom pásme s TIMESTAMP
Zatiaľ čoDATETIMEneukladá informácie o časovom pásmeTIMESTAMProbí. Ak je vaša aplikácia citlivá na časové pásmo (napríklad v medzinárodných aplikáciách), zvážte použitieTIMESTAMPpre polia dátumu a času, ktoré musia zohľadňovať rôzne časové pásma.
3. Spracovanie rozsahov dátumov v dopytoch
Na filtrovanie údajov na základe rozsahov dátumov (napr. získanie všetkých záznamov z určitého mesiaca alebo roka) sa uistite, že používate správne porovnania dátumov vWHEREdoložka. Príklad:
SELECT * FROM orders
WHERE order_date BETWEEN '2025-01-01' AND '2025-01-31';
4. Úvahy o výkone
Pri práci s funkciami dátumu a času, najmä vo veľkých súboroch údajov, pamätajte na vplyv na výkon. Vyhnite sa používaniu funkcií akoNOW()aleboCURDATE()vWHEREklauzulu, pretože môžu spomaliť dotazy pri práci s veľkými tabuľkami.
Záver
Funkcie dátumu a času MySQL sú nevyhnutnými nástrojmi manipulácia a manipulovanie časové údaje vo vašich databázach. Ovládaním funkcií akoNOW() CURDATE() DATE_ADD() DATEDIFF()aDATE_FORMAT()môžete ľahko pracovať výpočty založené na čase prirovnania a formátov . Kľúčom k efektívnemu využívaniu týchto funkcií je porozumieť ich syntaxi, kedy a ako ich použiť, a ich dôsledkom na výkon vo veľkých súboroch údajov. S týmito znalosťami budete môcť vytvárať efektívnejšie presné a škálovateľné dotazy pre všetky vaše potreby súvisiace s dátumom a časom v MySQL.