Există 61 de funcții de dată definite în MySQL. Nu vă faceți griji, nu le vom analiza pe toate aici. Acest ghid vă va oferi o introducere în unele dintre cele mai comune și o expunere suficientă pentru ca dvs. să puteți explora confortabil singur.

Vom acoperi:

  • Obținerea datei curente
  • Data Matematică
  • Date într-o clauză unde sau cu clauză

Obținerea datei curente

Obținerea datei din sistem poate fi foarte utilă pentru prelucrarea datelor folosind SQL.

-- current date
select now(), sysdate(), current_date(), current_time(), -- date and time from the system on execution
dayofyear(now()) as NumDaysSoFarThisYr,
EXTRACT(YEAR FROM now()) as theYearPart,
EXTRACT(YEAR_MONTH FROM now()) as theYrMonPart, 
date_format(now(), '%W %M %Y') as oneOfManyFormats; 
;

În interogarea SQL, vedem următoarele:

  • Primele două coloane din rezultat sunt două moduri de a obține aceleași informații: data din sistem la momentul executării SQL.
  • Următoarele două coloane împărțesc doar părțile de dată și oră ale datei sistemului.
  • Următorul prezintă „numărul zilei” datei sistemului din acest an. Veți observa că aceasta este cu o zi mai mult decât matematica prezentată în exemplul următor.
  • Următoarele două extrag doar anul și apoi atât anul, cât și luna
  • Nu în ultimul rând, există un singur exemplu al uneia dintre numeroasele modalități de formatare a acestor date.

De asemenea, puteți utiliza GETDATE () pentru a obține data curentă.

Data Matematică

select now(), current_date(), 
datediff(now(),'2017-01-01') as daysThisYear, 
subdate(current_date(), interval 150 day) as '150DaysAgo', 
adddate(now(), interval 7 day) as dateInA_Week -- date in a week
;
imagine-1

Aici vedem:

  • Primele două coloane sunt doar data și ora sistemului pentru referință.
  • Cea de-a doua coloană este diferența de dată (datat) între prima ianuarie 2017 și data sistemului.
  • Ultimele două coloane sunt exemple de scădere și adăugare de date.

Într-o clauză de unde sau având

Iată două exemple de utilizare a matematicii date într-o clauză where:

select * from student; - to show the current data being used for the example
select * from student where recordCreated < '2017-01-01';
select * from student where recordCreated < subdate(current_date(), interval 225 day);

În ceea ce privește partea HAVING: Rețineți, cea mai mare parte a logicii clauzei WHERE va funcționa și în clauza HAVING a unui GROUP BY. Diferența dintre cele două constă în faptul că clauza WHERE se execută în raport cu datele complete, iar HAVING se execută în raport cu datele agregate de clauza GROUP BY.

La fel ca în toate aceste lucruri, există MULTE MULT pentru ele decât cele din acest ghid introductiv. Sper că acest lucru vă oferă cel puțin suficient pentru a începe. Vă rugăm să consultați manualul pentru managerul de baze de date și distrați-vă încercând singuri diferite opțiuni.