logo

Funkcie dátumu a času MySQL

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 akoDATETIMEaleTIMESTAMPzahŕň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:

teraz výstupný obrázok metódy' title=

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: 

VÝSTUP2' loading='lazy' title=

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: 

VÝSTUP3' loading='lazy' title=

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
4120Prax1996-09-26 16:44:15.581

dotaz:

SELECT Name DATE(BirthTime)   
AS BirthDate FROM Test;

výstup:

zaujatosť a rozptyl
Meno Dátum narodenia
Prax1996-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
Prax26

Rok na extrahovanie dopytu:

SELECT Name Extract(YEAR FROM BirthTime)  
AS BirthYear FROM Test;

výstup: 

Meno Rok narodenia
Prax1996

Dopyt na extrahovanie sekúnd:

SELECT Name Extract(SECOND FROM   
BirthTime) AS BirthSecond FROM Test;

výstup:

Meno Druhé narodenie
Prax581

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
4120Prax1996-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
Prax1997-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
Prax1996-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
Prax1996-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 Java

interval - 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.

Vytvoriť kvíz