logo

MySQL funkcije datuma i vremena

Rukovanje datum i vrijeme Podaci u MySQL-u ključni su za mnoge operacije baze podataka, posebno kada se radi o rukovanju vremenskim oznakama zadacima raspoređivanja ili generiranju na temelju vremena. MySQL pruža razne funkcije datuma i vremena koje pomažu korisnicima da rade s datumskim vrijednostima, izvode izračune i formatiraju ih prema potrebi.

Ove funkcije omogućuju razvojnim programerima izvođenje izračuna, izdvajanje određenih dijelova datuma ili čak formatiranje izlaza za bolju čitljivost. U ovom ćemo članku istražiti najčešće korištene MySQL funkcije datuma, objasniti njihovu sintaksu, dati primjere i provesti vas kroz to kako ih učinkovito koristiti

Razumijevanje MySQL tipova podataka o datumu i vremenu

Kada radite s datumima u MySQL-u, to može biti teško za početnike, posebno zato što format datuma u bazi podataka mora odgovarati formatu ulaznih podataka tijekom umetanja. U mnogim slučajevima umjesto korištenja jednostavnog datuma možda ćemo morati pohraniti i datum i vrijeme, ovisno o slučaju upotrebe. Ovdje je DATETIME i TIMESTAMP tipovi podataka dolaze u obzir.



MySQL pruža sljedeće vrste podataka za pohranjivanje vrijednosti datuma i vremena:

1. DATUM :

  • Format :YYYY-MM-DD
  • Koristi se za pohranjivanje samo datuma (godina mjesec i dan) bez vremenske komponente.

2. DATETIME :

  • Format :YYYY-MM-DD HH:MM:SS
  • Pohranjuje i datum i vrijeme što ga čini korisnim kada trebate zabilježiti određeno vrijeme uz datum.

3. TIMESTAMP :

  • Format :YYYY-MM-DD HH:MM:SS
  • Slično kaoDATETIMEaliTIMESTAMPtakođer uključuje podršku za vremensku zonu. Automatski se ažurira na trenutnu vremensku oznaku kada se zapis izmijeni što ga čini idealnim za praćenje promjena zapisa tijekom vremena.

4. GODINA :

  • Format :YYYYiliYY
  • Koristi se za pohranjivanje samo godine što može biti korisno za aplikacije u kojima je potrebna samo godina, kao što je praćenje godina rođenja ili fiskalnih godina.

MySQL funkcije datuma i vremena

Zaronimo sada u MySQL funkcije za datume koje možete koristiti za učinkovito rukovanje podacima o datumu i vremenu i upite za njih.

1. NOW()- Dobijte trenutni datum i vrijeme

The SADA() funkcija dohvaća trenutni datum i vrijeme u GGGG-MM-DD HH:MI:SS format.

Upit:

SELECT NOW();  

Izlaz:

sada metoda izlazna slika' title=

2. CURDATE() - Dohvati samo trenutni datum

Ako trebamo samo trenutni datum bez vremenskog dijela koji možemo koristiti CURDATE() koji vraća datum u YYYY-MM-DD format.

Upit:

katrina kaif
SELECT CURDATE();  

Izlaz: 

IZLAZ2' loading='lazy' title=

3. CURTIME() - Dohvati samo trenutno vrijeme

Funkcija CURTIME() vraća trenutno vrijeme HH:MI:SS formatu bez datuma.

Upit:

SELECT CURTIME();  

Izlaz: 

IZLAZ3' loading='lazy' title=

4. DATE() - Izdvojite datumski dio iz DATETIME vrijednosti

TheDATE()funkcija izdvaja samo datumski dio iz aDATETIMEiliTIMESTAMPvrijednost odbacivanje vremena.

Primjer: Za stolom tzv users :

vrste spajanja u rdbms
Id Ime Vrijeme rođenja
4120Praksa1996-09-26 16:44:15.581

Upit:

SELECT Name DATE(BirthTime)   
AS BirthDate FROM Test;

Izlaz:

Ime Datum rođenja
Praksa1996-09-26

5. EXTRACT() - Izdvojite određene dijelove datuma

EXTRACT()koristi se za izdvajanje određenih dijelova datuma kao što je dan mjesec ili godina. Ova funkcija može biti osobito korisna pri analizi ili usporedbi različitih dijelova datuma. Može se uzeti u obzir nekoliko jedinica, ali samo neke se koriste kao npr MIKROSEKUNDA SEKUNDA MINUTA SAT DAN TJEDAN MJESEC KVARTAL GODINA itd. A 'datum' je važeći izraz datuma.

Sintaksa:

EKSTRAKT(jedinica IZ datuma);

Upit za izdvajanje dana:

SELECT Name Extract(DAY FROM   
BirthTime) AS BirthDay FROM Test;

Izlaz: 

Ime Rođendan
Praksa26

Upit za izdvajanje godine:

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

Izlaz: 

Ime Godina rođenja
Praksa1996. godine

Upit za izdvajanje sekundi:

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

Izlaz:

Ime Rođenje Drugo
Praksa581

6. DATE_ADD() - Dodavanje intervala datumu

The DATE_ADD() funkcija vam omogućuje dodavanje vremenskih intervala (npr. dana, mjeseci, godina) datumu iliDATETIMEvrijednost.

Sintaksa:

DATE_ADD(vrsta izraza INTERVAL datuma);

Primjer: Za donju tablicu pod nazivom ' Test '

Id Ime Vrijeme rođenja
4120Praksa1996-09-26 16:44:15.581

Upit za Dodajte 1 godinu datumu

SELECT Name DATE_ADD(BirthTime INTERVAL   
1 YEAR) AS BirthTimeModified FROM Test;

Izlaz:

Ime BirthTimeModified
Praksa1997-09-26 16:44:15.581

Upit za dodavanje 30 dana datumu

mail order traversal
SELECT Name DATE_ADD(BirthTime   
INTERVAL 30 DAY) AS BirthDayModified FROM Test;

Izlaz:

Ime BirthDayModified
Praksa1996-10-26 16:44:15.581

Upit za dodavanje 4 sata datumu

SELECT Name DATE_ADD(BirthTime INTERVAL  
4 HOUR) AS BirthHourModified FROM Test;

Izlaz: 

Ime Rođenje Drugo
Praksa1996-10-26 20:44:15.581

7. DATEDIFF() – Pronađite razliku između dva datuma

Ova funkcija vraća broj dana između dva datuma. 

Sintaksa:

DATEDIFF(intervaldate1 datum2);

interval - minuta/sat/mjesec/godina itd

datum1 & datum2 - izraz datuma/vremena

Upit za Pronađite razliku između dva datuma

SELECT DATEDIFF(day '2017-01-13' '2017-01-03') AS DateDiff;  

Izlaz: 

DateDiff

8. DATE_FORMAT() - Format datuma i vremena

DATE_FORMAT() nam omogućuje formatiranje a DATUM DATETIME ili TIMESTAMP vrijednost u prilagođeni format pomoću rezerviranih mjesta.

sortirani arraylist u Javi

Sintaksa:

DATE_FORMAT(format datuma);

datum je važeći datum, a format specificira izlazni format za datum/vrijeme. Formati koji se mogu koristiti su:

  • %a-Skraćeni naziv dana u tjednu (ned-sub)
  • %b-Skraćeni naziv mjeseca (siječanj-prosinac)
  • %c-mjesec numerički (0-12)
  • %D-dan u mjesecu s engleskim sufiksom (0. 1. 2. 3.)
  • %d-dan u mjesecu numerički (00-31)
  • %e-dan u mjesecu numerički (0-31)
  • %f-mikrosekunde (000000-999999)
  • %H-sat (00-23)
  • %h-sat (01-12)
  • %I-sat (01-12)
  • %i-Minute numerički (00-59)
  • %j-dan u godini (001-366)
  • %k-sat (0-23)
  • %l-sat (1-12)
  • Naziv %M mjeseca (siječanj-prosinac)
  • %m-mjesec numerički (00-12)
  • %p-prijepodne ili popodne
  • %r-vrijeme 12 sati (hh:mm: ss nakon čega slijedi AM ili PM)
  • %S-sekundi (00-59)
  • %s-sekundi (00-59)
  • %T-vrijeme 24 sata (hh:mm:ss)
  • %U-tjedan (00-53) gdje je nedjelja prvi dan u tjednu
  • %u-Tjedan (00-53) gdje je ponedjeljak prvi dan u tjednu
  • %V-Tjedan (01-53) gdje je nedjelja prvi dan u tjednu koji se koristi s %X
  • %v-Tjedan (01-53) gdje je ponedjeljak prvi dan u tjednu koji se koristi s %x
  • %W-Naziv dana u tjednu (nedjelja-subota)
  • %w-dan u tjednu (0=nedjelja 6=subota)
  • %X-godina za tjedan gdje je nedjelja prvi dan u tjednu četiri znamenke koje se koriste uz %V
  • %x-godina za tjedan u kojem je ponedjeljak prvi dan u tjednu četiri znamenke koje se koriste uz %v
  • %Y-godina četiri znamenke
  • %y-godina, dvije znamenke

Upit za oblikovanje datuma

SELECT DATE_FORMAT('2025-04-10 12:34:56' '%W %M %d %Y') AS formatted_date;

Izlaz:

Formatirani_datum
Četvrtak 10. travnja 2025

Najbolje prakse za rad s datumom i vremenom u MySQL-u

1. Uvijek koristite odgovarajuće formate datuma

Prilikom umetanja ili ažuriranja datuma pazite da slijedite očekivane formate MySQL-a (YYYY-MM-DD YYYY-MM-DD HH:MI:SS). To osigurava da vaši upiti vraćaju očekivane rezultate bez pogrešaka.

2. Razmatranja vremenske zone s TIMESTAMP

DokDATETIMEne pohranjuje informacije o vremenskoj zoniTIMESTAMPradi. Ako je vaša aplikacija osjetljiva na vremensku zonu (na primjer u međunarodnim aplikacijama), razmislite o upotrebiTIMESTAMPza polja datum-vrijeme koja trebaju uzeti u obzir različite vremenske zone.

3. Rukovanje datumskim rasponima u upitima

Za filtriranje podataka na temelju datumskih raspona (npr. dohvaćanje svih zapisa iz određenog mjeseca ili godine) osigurajte da koristite odgovarajuće usporedbe datuma uWHEREklauzula. Primjer:

SELECT * FROM orders  
WHERE order_date BETWEEN '2025-01-01' AND '2025-01-31';

4. Razmatranja izvedbe

Kada radite s funkcijama datuma i vremena, posebno u velikim skupovima podataka, vodite računa o utjecaju na izvedbu. Izbjegavajte korištenje funkcija poputNOW()iliCURDATE()uWHEREjer mogu usporiti upite kada se radi s velikim tablicama.

Zaključak

MySQL funkcije datuma i vremena neophodni su alati za rukovanje i manipulirajući vremenske podatke unutar vaših baza podataka. Ovladavanjem funkcijama poputNOW() CURDATE() DATE_ADD() DATEDIFF()iDATE_FORMAT()s kojima možete lako raditi proračuni temeljeni na vremenu usporedbe i formati . Ključ za učinkovito korištenje ovih funkcija je razumijevanje njihove sintakse kada i kako ih koristiti i njihovih implikacija na izvedbu u velikim skupovima podataka. S tim ćete znanjem moći izraditi učinkovitije točne i skalabilne upite za sve svoje potrebe vezane uz datum i vrijeme u MySQL-u.

Napravi kviz