Funkcije datuma in časa MySQL

Funkcije datuma in časa MySQL

Ravnanje datum in čas podatki v MySQL so bistveni za številne operacije baze podatkov, zlasti ko gre za ravnanje s časovnimi žigi, razporejanje nalog ali ustvarjanje na podlagi časa. MySQL ponuja različne funkcije datuma in časa, ki uporabnikom pomagajo pri delu z datumskimi vrednostmi, izvajajo izračune in jih po potrebi oblikujejo.

Te funkcije omogočajo razvijalcem, da izvajajo izračune, izvlečejo določene dele datuma ali celo oblikujejo izhod za boljšo berljivost. V tem članku bomo raziskali najpogosteje uporabljene datumske funkcije MySQL, pojasnili njihovo sintakso, podali primere in vas vodili skozi način njihove učinkovite uporabe.

Razumevanje tipov podatkov MySQL o datumu in času

Pri delu z datumi v MySQL je lahko za začetnike težavno, zlasti ker se mora format datuma v bazi podatkov ujemati z formatom vhodnih podatkov med vstavljanjem. V mnogih primerih bomo namesto uporabe preprostega datuma morda morali shraniti tako datum kot uro, odvisno od primera uporabe. Tukaj je DATETIME in TIMESTAMP podatkovni tipi pridejo v poštev.

MySQL ponuja naslednje tipe podatkov za shranjevanje vrednosti datuma in časa:

1. DATUM :

  • Oblika : YYYY-MM-DD
  • Uporablja se samo za shranjevanje datuma (leto, mesec in dan) brez časovne komponente.

2. DATETIME :

  • Oblika : YYYY-MM-DD HH:MM:SS
  • Shranjuje tako datum kot uro, kar je uporabno, ko morate poleg datuma zajeti tudi določene ure.

3. ČASOVNI ŽIG :

  • Oblika : YYYY-MM-DD HH:MM:SS
  • Podobno kot DATETIME ampak TIMESTAMP vključuje tudi podporo za časovni pas. Ko je zapis spremenjen, se samodejno posodobi na trenutni časovni žig, zaradi česar je idealen za sledenje spremembam zapisov skozi čas.

4. LETO :

  • Oblika : YYYY oz YY
  • Uporablja se za shranjevanje samo letnice, kar je lahko uporabno za aplikacije, kjer je potrebna samo letnica, kot je sledenje letnicam rojstva ali proračunskim letom.

Funkcije datuma in časa MySQL

Zdaj pa se poglobimo v datumske funkcije MySQL, ki jih lahko uporabite za učinkovito upravljanje in poizvedovanje podatkov o datumu in času.

1. NOW()- Pridobite trenutni datum in čas

The ZDAJ() funkcija pridobi trenutni datum in čas v LLLL-MM-DD HH:MI:SS format.

poizvedba:

 SELECT NOW();   

Izhod:

zdaj metoda izhodna slika

2. CURDATE() - Pridobi samo trenutni datum

Če potrebujemo samo trenutni datum brez časovnega dela, ki ga lahko uporabimo CURDATE() ki vrne datum v YYYY-MM-DD format.

poizvedba:

 SELECT CURDATE();   

Izhod: 

IZHOD2

3. CURTIME() - Pridobite samo trenutni čas

Funkcija CURTIME() vrne trenutni čas HH:MI:SS oblika brez datuma.

poizvedba:

 SELECT CURTIME();   

Izhod: 

IZHOD3

4. DATE() - Izvlecite datumski del iz vrednosti DATETIME

The DATE() funkcija izvleče le datumski del iz a DATETIME oz TIMESTAMP vrednost zavreči čas.

primer: Za mizo imenovano users :

Id Ime Čas rojstva
4120 Vadite 1996-09-26 16:44:15.581

poizvedba:

 SELECT Name DATE(BirthTime)    
AS BirthDate FROM Test;

Izhod:

Ime Datum rojstva
Vadite 1996-09-26

5. EXTRACT() - Izvleček določenih datumskih delov

EXTRACT() se uporablja za ekstrahiranje določenih delov datuma, kot je dan, mesec ali leto. Ta funkcija je lahko še posebej koristna pri analizi ali primerjavi različnih delov datuma. Upoštevati je mogoče več enot, vendar se uporabljajo le nekatere, kot npr MIKROSEKUNDA SEKUNDA MINUTA URA DAN TEDEN MESEC ČETRTLETJE LETO itd. In 'datum' je veljaven datumski izraz.

Sintaksa:

IZVLEČEK (enota IZ datuma);

Dan poizvedbe za ekstrahiranje:

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

Izhod: 

Ime rojstni dan
Vadite 26

Poizvedba za ekstrahiranje leta:

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

Izhod: 

Ime Leto rojstva
Vadite 1996

Poizvedba za ekstrakcijo sekund:

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

Izhod:

Ime BirthSecond
Vadite 581

6. DATE_ADD() - Dodajanje intervalov datumu

The DATE_ADD() omogoča dodajanje časovnih intervalov (npr. dni, mesecev, let) datumu oz DATETIME vrednost.

Sintaksa:

DATE_ADD(vrsta izraza INTERVAL datuma);

primer: Za spodnjo tabelo z imenom ' Test '

Id Ime Čas rojstva
4120 Vadite 1996-09-26 16:44:15.581

Poizvedba do Datumu dodajte 1 leto

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

Izhod:

Ime BirthTimeModified
Vadite 1997-09-26 16:44:15.581

Poizvedba za dodajanje 30 dni datumu

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

Izhod:

Ime BirthDayModified
Vadite 1996-10-26 16:44:15.581

Poizvedba za dodajanje 4 ur zmenku

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

Izhod: 

Ime BirthSecond
Vadite 1996-10-26 20:44:15.581

7. DATEDIFF() – Poiščite razliko med dvema datumoma

Ta funkcija vrne število dni med dvema datumoma. 

Sintaksa:

DATEDIFF(intervaldatum1 datum2);

interval - minuta/ura/mesec/leto itd

date1 & date2 - izraz za datum/čas

Poizvedba do Poiščite razliko med dvema datumoma

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

Izhod: 

DateDiff

8. DATE_FORMAT() - Oblika datuma in časa

DATE_FORMAT() nam omogoča formatiranje a DATUM DATETIME oz ČASOVNI ŽIG vrednost v obliko po meri z ogradami.

Sintaksa:

DATE_FORMAT(oblika datuma);

datum je veljaven datum in format določa izhodni format za datum/čas. Formati, ki jih je mogoče uporabiti, so:

  • %a-Skrajšano ime dneva v tednu (ned-sob)
  • %b-Skrajšano ime meseca (jan-dec)
  • %c-številka meseca (0-12)
  • %D-dan v mesecu z angleško pripono (0. 1. 2. 3.)
  • %d-številski dan v mesecu (00-31)
  • %e-dan v mesecu številčno (0-31)
  • %f-mikrosekund (000000-999999)
  • %H-ura (00-23)
  • %h-ura (01-12)
  • % I-ura (01-12)
  • %i-minut številčno (00-59)
  • %j-dan v letu (001-366)
  • %k-ura (0-23)
  • %l-ura (1-12)
  • %M-ime meseca (januar-december)
  • %m-mesečno število (00-12)
  • %p-dopoldne ali popoldne
  • %r-čas 12-ur (hh:mm: ss, ki mu sledi AM ali PM)
  • %S-sekund (00-59)
  • %s-sekund (00-59)
  • %T-čas 24 ur (hh:mm:ss)
  • %U-teden (00-53), kjer je nedelja prvi dan v tednu
  • %u-teden (00-53), kjer je ponedeljek prvi dan v tednu
  • %V-teden (01-53), kjer je nedelja prvi dan v tednu, uporabljen z %X
  • %v-teden (01-53), kjer je ponedeljek prvi dan v tednu, uporabljen z %x
  • %W-ime dneva v tednu (nedelja-sobota)
  • %w-dan v tednu (0=nedelja 6=sobota)
  • %X-leto za teden, kjer je nedelja prvi dan v tednu, štiri številke, uporabljene z %V
  • %x-leto za teden, kjer je ponedeljek prvi dan v tednu, štiri številke, uporabljene z %v
  • Štirimestna številka leta %Y
  • %y-leto, dve števki

Poizvedba za oblikovanje datuma

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

Izhod:

Oblikovani_datum
Četrtek, 10. april 2025

Najboljše prakse za delo z datumom in uro v MySQL

1. Vedno uporabljajte ustrezne oblike zapisa datuma

Pri vstavljanju ali posodabljanju datumov se prepričajte, da upoštevate pričakovane formate MySQL ( YYYY-MM-DD YYYY-MM-DD HH:MI:SS ). To zagotavlja, da vaše poizvedbe vrnejo pričakovane rezultate brez napak.

2. Upoštevanje časovnega pasu s TIMESTAMP

Medtem ko DATETIME ne shranjuje informacij o časovnem pasu TIMESTAMP počne. Če je vaša aplikacija občutljiva na časovni pas (na primer v mednarodnih aplikacijah), razmislite o uporabi TIMESTAMP za polja datuma in časa, ki morajo upoštevati različne časovne pasove.

3. Obravnava časovnih obdobij v poizvedbah

Za filtriranje podatkov na podlagi časovnih obdobij (npr. pridobivanje vseh zapisov iz določenega meseca ali leta) zagotovite, da uporabljate ustrezne primerjave datumov v WHERE klavzula. primer:

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

4. Upoštevanje učinkovitosti

Pri delu s funkcijami datuma in časa, zlasti v velikih naborih podatkov, bodite pozorni na vpliv na zmogljivost. Izogibajte se uporabi funkcij, kot je NOW() oz CURDATE() v WHERE ker lahko upočasnijo poizvedbe pri delu z velikimi tabelami.

Zaključek

Funkcije datuma in časa MySQL so bistvena orodja za ravnanje in manipuliranje začasne podatke v vaših zbirkah podatkov. Z obvladovanjem funkcij, kot je NOW() CURDATE() DATE_ADD() DATEDIFF() in DATE_FORMAT() z lahkoto delate časovno zasnovani izračuni primerjave in formatov . Ključ do učinkovite uporabe teh funkcij je razumevanje njihove sintakse, kdaj in kako jih uporabiti, ter njihove posledice za delovanje v velikih nizih podatkov. S tem znanjem boste lahko zgradili učinkovitejše natančne in razširljive poizvedbe za vse vaše potrebe, povezane z datumom in uro v MySQL.

Ustvari kviz