Sql - Lecția 13

Lecții SQL → Lecția 13. Funcțiile datei și orei

Aceste funcții sunt proiectate să funcționeze cu tipuri de date din calendar. Luați în considerare cele mai aplicabile.
  • CURDATE (), CURTIME () și ACUM () Prima funcție returnează data curentă, al doilea - ora curentă, iar al treilea - data și ora curentă. Compara:

SELECT CURDATE (), CURTIME (), ACUM ();

Funcțiile CURDATE () și NOW () sunt utile pentru adăugarea de înregistrări care utilizează ora curentă la baza de date. În magazinul nostru toate consumabilele și vânzările utilizează ora curentă. Prin urmare, pentru a adăuga intrări despre articole și vânzări, este convenabil să utilizați funcția CURDATE (). De exemplu, lăsați mărfurile să vină la magazinul nostru, să adăugăm informații despre el la masă. Livrare:

INSERTAȚI ÎN VALORILE primite (id_vendor, data_incoming) ('2', curdate ());

Dacă am păstrat data livrării cu tipul datetime, atunci funcția NOW () ar fi mai potrivită pentru noi.
  • ADDDATE (data, valoarea INTERVAL) Funcția returnează data de data la care se adaugă valoarea. Valoarea valorii poate fi negativă, apoi data finală va scădea. Să vedem când furnizorii noștri livrau produsele:

    SELECT id_vendor, data_incoming FROM FROM incoming;

    Să presupunem că am făcut o greșeală la introducerea datei pentru primul furnizor, să reducem data cu o zi:

    SELECT id_vendor, ADDDATE (data_invenție, INTERVAL -1 DAY)
    De la intrare
    WHERE id_vendor = 1;

    Valoarea poate fi nu numai pentru zile, ci și săptămâni (SĂPTĂMÂNĂ), luni (LUNĂ), trimestre (TRIMESTRUL) și ani (ANUL). Să reducem data livrării pentru al doilea furnizor cu o săptămână pentru un exemplu:

    SELECT id_vendor, ADDDATE (data_invenție, INTERVAL -1 SĂPTĂMÂNĂ)
    De la intrare
    WHERE id_vendor = 2;

    În tabelul nostru de livrare, am folosit coloana date_invenientă pentru coloana dată. După cum vă amintiți din lecția 2, acest tip de date este destinat să stocheze numai data. Dar dacă am folosi tipul de datetime, atunci vom afișa nu numai data, ci și timpul. Apoi am putea folosi funcția ADDDATE pentru timp. Valoarea în acest caz poate fi secunde (SECOND), minute (MINUTE), ore (HOUR) și combinațiile lor:

    minute și secunde (MINUTE_SECOND),
    ore, minute și secunde (HOUR_SECOND),
    ore și minute (HOUR_MINUTE),
    Zile, ore, minute și secunde (DAY_SECOND),
    Zile, ore și minute (DAY_MINUTE),
    zile și ore (DAY_HOUR),
    Anii și lunile (YEAR_MONTH).


  • SUBDATE (data, valoarea INTERVAL) funcția este identică cu cea anterioară, dar efectuează o operație de scădere, nu adăugă.
  • Funcția TIMESTAMPADD (interval, n, dată) adaugă la data date intervalul de timp n. ale căror valori sunt specificate de intervalul parametrilor. Valorile posibile pentru parametrul interval sunt:

    FRAC_SECOND - microsecunde
    Secundele secunde
    MINUTE minute
    ORE - Ore
    DAI zile
    WEEK - săptămâni
    MONTH - luni
    TRIMESTRUL - sferturi
    ANUL - ani


  • TIMEDIFF (data1, data2) calculează diferența de ore, minute și secunde între două date.
  • DATEDIFF (data1, data2) calculează diferența de zile între două date. De exemplu, vrem să știm cât timp furnizorul Williams (id = 1) ne-a furnizat bunurile:

    SELECT data_incoming, CURDATE (), DATEDIFF (CURDATE (), data_incoming)
    De la intrare
    WHERE id_vendor = 1;


  • TIMESTAMPDIFF (interval, date1, DATE2) funcția calculează diferența dintre datele și DATE2 date1 în unități specificate în parametrul interval. Valorile posibile pentru parametrul interval sunt:

    FRAC_SECOND - microsecunde
    Secundele secunde
    MINUTE minute
    ORE - Ore
    DAI zile
    WEEK - săptămâni
    MONTH - luni
    TRIMESTRUL - sferturi
    ANUL - ani


  • Funcția SUBTIME (data, ora) scade din timp în timp:
  • DATE (datetime) returnează data, tăind timpul. De exemplu:
  • TIME (datetime) returnează timpul tăind data. De exemplu:
  • Funcția TIMESTAMP (data) ia data de dată și returnează versiunea completă cu timpul. De exemplu:
  • Funcțiile DAY (data) și DAYOFMONTH (data) - sinonime, returnați de la data numărului ordinal al zilei din lună:
  • DAYNAME (data), DAYOFWEEK (data) și ZISĂPT (data) întoarce ziua săptămânii, primul - numele, al doilea - numărul de zile ale săptămânii (numărând de la 1 - duminică până la 7 - sâmbătă), a treia - zi de numărul săptămânii (numărând de la 0 - Luni, până la 6 - Duminică:
  • WEEK (data), WEEKOFYEAR (datetime) ambele funcții returnează numărul săptămânii al anului, primul pentru tipul de data, iar al doilea - un tip datetime, din prima săptămână începe duminică, în al doilea - Luni:
  • MONTH (data) și MONTHNAME (data) ambele funcții returnează valorile din lună. Primul este valoarea numerică (de la 1 la 12), al doilea este numele lunii:
  • Funcția QUARTER (data) returnează valoarea trimestrului (de la 1 la 4):
  • Funcția YEAR (data) returnează valoarea anului (de la 1000 la 9999):
  • DAYOFYEAR (data) returnează ziua ordinală a anului (de la 1 la 366):
  • HOUR (datetime) returnează valoarea oră pentru timp (de la 0 la 23):
  • MINUTE (datatime) returneaza minutele pentru timp (de la 0 la 59):
  • SECOND (datetime) returnează valoarea secundă pentru timp (de la 0 la 59):
  • EXTRACT (tip FROM date) returneaza partea din data specificata de parametrul de tip:
  • TO_DAYS (data) și FROM_DAYS (n) funcții inverse. Primul convertește data în numărul de zile care au trecut de la anul zero. Al doilea, dimpotrivă, ia numărul de zile care au trecut de la anul zero și le transformă într-o dată:
  • TIME_TO_SEC (time) și SEC_TO_TIME (n) Funcții mutuale. Primul convertește timpul în numărul de secunde scurs de la începutul zilei. Al doilea, dimpotrivă, ia numărul de secunde de la începutul zilei și le transformă în timpul:

    SELECT TIME_TO_SEC ('22: 10: 30 '), SEC_TO_TIME (45368);


  • Funcția MAKEDATE (an, n) ia numărul anului și al zilei din an și le convertește la data:














  • Asta e totul pentru ziua de azi. Data viitoare, luați în considerare funcțiile care ajută la traducerea datelor dintr-un format în altul.





    Articole similare

    Trimiteți-le prietenilor: