Cum se utilizează în MySQL: timestamp și datetime

MySQL oferă dezvoltatorului capacitatea de a lucra în timp în diferite moduri. Există tipuri de date pentru descrierea câmpurilor din tabele. Există multe funcții pentru a fi utilizate în interogări. Localizarea temporară disponibilă și schimbarea fuselor orare în sesiuni, setările MySQL și utilizarea timpului sistemului de operare.

MySQL timestamp

Responsabilitatea pentru aplicarea tipurilor de date și schimbarea fusurilor orare revine dezvoltatorului, care trebuie să țină cont de timpul și timpul serverului clientului. Nu coincid întotdeauna.

Descrierea tabelelor cu câmpuri de timp

Exemplul descrie trei moduri de reprezentare a timpului. Două dintre ele sunt de tip timestamp MySQL (start_timestamp, next_timestamp), unul este de tip datetime MySQL (start_datetime) și varianta personalizată sub forma unui șir de caractere (work_income).

Exemplul autorului nu este o imagine

Tipul marcajului de timp este formatul nativ pentru timpul de captură a evenimentului MySQL, are nevoie de 8 octeți, este un număr întreg și are o caracteristică: prima coloană este umplută cu automatul în momentul creării: interogare (1). Al doilea și toate celelalte - rămân nul, dar acest lucru nu este NULL. Interogarea (2) conține funcția timestamp MySQL now (), care a fost folosită pentru a popula câmpul start_datetime.

Exemplul autorului nu este o imagine

În acest exemplu, se vede că tabela generată de interogare (1, crearea tabelului) va umple prima coloană a start_timestamp cu mașina automat în momentul creării tabelului. Interogarea (2, completarea tabelului) arată că acesta este cazul. Cea de-a doua coloană a lui next_timestamp rămâne zero: toate componentele datei și ale timpului sunt reprezentate de "0" în toate pozițiile, dar nu și NULL, ca întregul câmp.

Dacă cererea de a elimina referința la câmpul start_datetime și funcția care este acum (), câmpul start_datetime va conține valoarea NULL. Partea de sus a imaginii arată tabelul utilizând funcția de umplere, partea de jos este tabelul fără a utiliza acum (). Diferențele sunt semnificative.

Timpul Unix și timpul utilizatorului

MySQL câmpuri tabel de timbru datatime diferă în umplere și utilizare. De exemplu, opțiunea:

  • int mktime ([int ora [, int minute [, int second [, ...


este disponibil pentru un câmp de tip datetime, în timp ce câmpul timestamp este mai orientat spre funcțiile limbii MySQL în sine.

Pentru a folosi câmpurile de timp cât mai eficient și mai sigur, este recomandabil să vă concentrați asupra modului de lucru cu marca de timp MySQL în funcționalitatea propusă, în sensul că scopul său este determinat de baza însăși. Aceasta este propria sa ștampilă de timp, formatul de reprezentare a timpului.

MySQL timestamp acum

Tipul datetime este mai relativ la timpul din vizualizarea Unix era și poate fi asociat, de exemplu, cu funcția PHP mktime () sau cu un format de text simplu, de exemplu:

Exemplul autorului nu este o imagine

Aici variabila $ cStndDate este un text simplu, care este interpretat în interogare ca ceva scris în format de dată / oră. Dacă variabila este specificată corect, valoarea dorită este înscrisă în câmpul cerut al tabelului.

Timpul utilizatorului este cerința sarcinii. Nu este întotdeauna necesară prezentarea în baza de date a tuturor drepturilor de gestionare a timpului. Întotdeauna face totul în felul ei. Acest lucru nu este întotdeauna corect, de exemplu, avem nevoie de numele lunilor rusești sau de o comandă specială pentru înregistrarea zilei, lunii și anului.

Zonele de timp și logica corectă

Lucrul cu marca de timp MySQL datetime necesită îngrijire și precizie. Un alt lucru - propriul său formatul datei, scrise în text simplu. Este adevărat că, în acest caz, avantajele tipurilor de date standard se pierd, de exemplu, sortarea sau calculul peste date, dar apar avantajele dorite.

mysql timestamp

În orice caz, dezvoltatorul ar trebui să fie extrem de atent. Zonele de timp, setările de localizare și multe alte nuanțe pot crea o anumită neînțelegere. Dacă se întâmplă ceva cu o dată cu NULL sau cu zero în toate pozițiile, trebuie să căutați, în primul rând, o eroare în propriul algoritm. MySQL, câmpurile de date și funcțiile de timp lucrează extrem de stabil și corect.

Distribuiți pe rețelele sociale:

înrudit
MySQL este ceea ce și unde se aplică?MySQL este ceea ce și unde se aplică?
Crearea unei baze de date MySQL face parte din orice siteCrearea unei baze de date MySQL face parte din orice site
MySQL - ce este? Eroare MySQLMySQL - ce este? Eroare MySQL
MySQL selectați selectați: operatorul de eșantionareMySQL selectați selectați: operatorul de eșantionare
Folosind MySQL: inserați înFolosind MySQL: inserați în
MySQL - cererea în cerere. MySQL: exemple de interogări. Întrebări interogate MySQLMySQL - cererea în cerere. MySQL: exemple de interogări. Întrebări interogate MySQL
"Capcane" de comenzi DML Actualizați MySQL"Capcane" de comenzi DML Actualizați MySQL
MySQL JOIN: o descriere, un exemplu de utilizare a comenzii și recomandăriMySQL JOIN: o descriere, un exemplu de utilizare a comenzii și recomandări
Șterge instrucțiunea Șterge MySQLȘterge instrucțiunea Șterge MySQL
Practica de utilizare a funcției MySQL countPractica de utilizare a funcției MySQL count
» » Cum se utilizează în MySQL: timestamp și datetime