Ako používať MySQL: časová pečiatka a dátum

MySQL dáva vývojárom schopnosť pracovať s časom rôznymi spôsobmi. Existujú typy údajov na opis polí v tabuľkách. Existuje mnoho funkcií, ktoré je možné použiť v dopytoch. K dispozícii je dočasná lokalizácia a zmena časových zón v reláciách, konfigurácia MySQL a použitie času operačného systému.

Zodpovednosť za aplikáciu typov údajov a zmenu časových pásiem má vývojár, ktorý musí brať do úvahy čas a čas klienta. Nie vždy sa zhodujú.

Popis tabuliek s časovými poliami

V príklade existujú tri varianty reprezentácie času. Dva sú typ časovej značky MySQL (start_timestamp, next_timestamp), jeden je typ dátumu MySQL (start_datetime) a rozhranie je voľbou vo forme reťazca znakov (work_income).


Typ časového označenia je natívny pre formát času MySQL zaznamenávania udalostí, zaberá 8 bajtov, je celé číslo a má jednu vlastnosť: prvý stĺpec je vyplnený automatom v čase vytvorenia: dotaz

. Druhá a všetky nasledujúce zostávajú nula, ale to nie je NULL. Dotaz

obsahuje funkciu MySQL timestamp now (), ktorá sa používa na vyplnenie poľa start_datetime.
V tomto príklade je vidieť, že tabuľka generovaná dotazom (1 vytvorením tabuľky) vyplní prvý stĺpec start_timestamp so strojom pri vytvorení tabuľky. Žiadosť (2 vyplnenie tabuľky) ukazuje, že to je presne prípad. V tomto prípade zostáva druhý stĺpec next_timestamp null: všetky komponenty dátumu a času sú vo všetkých pozíciách "0", ale nie NULL, rovnako ako celé pole. Ak odstránite prepojenie z dopytu do poľa start_datetime a funkcia sa vyplní teraz (), potom pole start_datetime bude obsahovať hodnotu NULL. Vrcholčasť obrázka ukazuje tabuľku s funkciou vyplnenia, spodná časť je tabuľka bez použitia teraz (). Rozdiely sú významné.


Unix čas a vlastný čas

MySQL timestamp & amp; dátum a čas sa líšia pri plnení a použití. Napríklad variant:
  • int mktime ([int hodina [, int minút [, int druhý [,
  • pre prístup pre typ datetime pole, potom čas ako typ poľa časovej pečiatky Bolshe oryentyruetsya v závislosti tém jazyk MySQL.S Avto Požadovať polia času a väčšina эffektyvno bezopasno, vhodné oryentyrovatsya na spôsoby, ako pracovať s MySQL časovou pečiatkou v predlahaemom funkčný v Volume ega vymenovaním kotoroe opredeleno údajov základňových Samoa. Táto známka sobstvennыy Jej okamihu čas, formát prezentáciu času
    .
    Typ datetime viac než otnosym čo TIME éry v prezentácii Unix a assotsyyrovat ego môže byť napríklad s funkciami PHP mktime () alebo obыchnыm formátu tekstovыm, ako sú:
    Tu peremennaya $ cStndDate - Normal Text kotoryya ynterpretyruetsya Ako požiadať o niečo, napysannoe v datы formiátu /čas. Ak peremennaya správne zadaný správny nuzhnoe tablytsы zapyshetsya nuzhnoe znachenye.Polzovatelskoe Time - je požiadavky úloh. Zďaleka nie je potrebné poskytovať databázu všetky práva na časové riadenie. Vždy bude robiť všetko vlastným spôsobom. To nie je vždy správny, napríklad nuzhnы Názov Rusi mesiacov alebo záznamy osobыy poradí deň, mesiac a rok.

    Časové pásma a správna logika

    Práca s časovou značkou MySQL & amp; čas potrebný na starostlivosť a presnosť. Ďalšia vec je jeho vlastný dátumový formát,napísané v obyčajnom texte. Je pravda, že v tomto prípade sú prínosy štandardných typov dátumov, napríklad triedenie alebo výpočet dátumov, stratený, ale sú tu žiaduce výhody.
    V každom prípade by vývojár mal byť veľmi opatrný. Časové pásma, nastavenia lokalizácie a mnohé ďalšie nuansy môžu spôsobiť určité nedorozumenia. Ak sa niečo pri práci s dátumom stalo NULL alebo nula vo všetkých pozíciách, musí sa najprv vyhľadať chybu vo vlastnom algoritme. MySQL, dátumové polia a časové funkcie sú mimoriadne stabilné a správne.

    Súvisiace publikácie