Kako koristiti MySQL: timestamp i datetime

MySQL daje programerima mogućnost rada s vremenom na različite načine. Postoje tipovi podataka koji opisuju polja u tablicama. Postoje mnoge značajke koje se mogu koristiti u upitima. Dostupne su privremena lokalizacija i promjena vremenskih zona u sesijama, konfiguracija MySQL-a i korištenje vremena operativnog sustava.

Odgovornost za primjenu tipova podataka i promjenu vremenskih zona leži na programeru, koji mora uzeti u obzir vrijeme klijenta i vrijeme poslužitelja. Oni se ne podudaraju uvijek.

Opis tablica s vremenskim poljima

U primjeru, postoje tri varijante prikaza vremena. Dva su vrsta vremenske oznake MySQL (start_timestamp, next_timestamp), jedna je vrsta MySQL datetime (start_datetime), a sučelje je opcija u obliku niza znakova (work_income).


Tip vremenske oznake je izvorni za MySQL format zapisivanja vremena događaja, zauzima 8 bajtova, cijeli je broj i ima jednu značajku: prvi stupac se popunjava automatom u vrijeme kreiranja: upit

. Drugi i svi sljedeći ostaju nuli, ali to nije NULL. Upit

sadrži funkciju MySQL timestamp now () koja se koristi za popunjavanje polja start_datetime.
U ovom primjeru, vidi se da će tablica koju generira upit (1 kreiranje tablice) popuniti prvi stupac start_timestamp strojom kada se stvori tablica. Zahtjev (2 popunjavanje tablice) pokazuje da je to upravo slučaj. U tom slučaju drugi stupac next_timestamp ostaje null: sve komponente datuma i vremena su "0" u svim položajima, ali ne i NULL, kao i cijelo polje. Ako uklonite vezu iz upita u polje start_datetime i funkciju, ona popunjava now (), tada će polje start_datetime sadržavati vrijednost NULL. Vrhdio slike prikazuje tablicu pomoću funkcije ispunjavanja, donji dio je tablica bez korištenja sada (). Razlike su značajne.


Unix vrijeme i prilagođeno vrijeme

MySQL timestamp & amp; datetime se razlikuju u punjenju i upotrebi. Na primjer, opcija:
  • int mktime ([int hour [, int minute [, int second [,
  • je dostupno za polje tipa datetime, dok je polje vrste timestamp više orijentirano na funkcije samog jezika MySQL. Kako bi se vremenska polja iskoristila na najučinkovitiji i najsigurniji način, poželjno je da se usredotočite na način rada s MySQL vremenskom oznakom u predloženoj funkcionalnosti, u tu svrhu, koja je definirana samom bazom podataka.
    Tip datetime se odnosi više na vrijeme u prikazu yunks ere i može se povezati s, na primjer, PHP funkcijom mktime () ili uobičajenim formatom teksta, na primjer:
    Ovdje varijabla $ cStndDate je običan tekst koji se u upitu tumači kao nešto što je napisano u formatu datuma /vremena. Ako je varijabla ispravno navedena, u željeno polje tablice unosi se potrebna vrijednost, a korisnikovo vrijeme je zahtjev zadatka. Daleko je uvijek potrebno pružiti bazu podataka sa svim pravima na upravljanje vremenom. Uvijek će sve raditi na svoj način. To nije uvijek točno, na primjer, potrebna su imena ruskih mjeseci ili poseban redoslijed dana, mjeseca i godine.

    Vremenske zone i ispravna logika

    Rad s MySQL timestamp & amp; datetime zahtijeva brigu i točnost. Druga stvar je njezin vlastiti format datuma,napisana običnim tekstom. Istina, u ovom slučaju, koristi standardnih tipova datuma, na primjer, sortiranje ili izračunavanje nad datumima, su izgubljene, ali postoje poželjne prednosti.
    U svakom slučaju, programer bi trebao biti izuzetno oprezan. Vremenske zone, postavke lokalizacije i mnoge druge nijanse mogu stvoriti neke nesporazume. Ako je nešto pri radu s datumom postalo NULL ili nule na svim pozicijama, prvo treba tražiti pogrešku u vlastitom algoritmu. MySQL, njegova polja datuma i funkcije vremena su izuzetno stabilne i točne.

    Povezane publikacije