Jak používat MySQL: časové razítko a datetime

MySQL dává vývojářům možnost pracovat s časem různými způsoby. Existují typy dat, které popisují pole v tabulkách. V dotazech je mnoho funkcí, které lze použít. K dispozici je dočasná lokalizace a změna časových pásem v relacích, konfigurace MySQL a použití času operačního systému.

Odpovědnost za použití datových typů a změn časových pásem spočívá na vývojáři, který musí brát v úvahu čas a čas serveru. Ne vždy se shodují.

Popis tabulek s časovými poli

V příkladu existují tři varianty reprezentace času. Dva jsou typ časové značky MySQL (start_timestamp, next_timestamp), jeden je typ datetime MySQL (start_datetime) a rozhraní je volba ve formě řetězce znaků (work_income).


Typ časového razítka je přirozený pro formát záznamu událostí ve formátu MySQL, zabírá 8 bajtů, je celé číslo a má jednu vlastnost: první sloupec je v době vytvoření vytvořen v automatu: dotaz

. Druhý a všechny následující zůstávají nulové, ale to není NULL. Dotaz

obsahuje funkci časové značky MySQL now (), která se používá k vyplnění pole start_datetime.
V tomto příkladu je vidět, že tabulka vygenerovaná dotazem (1 vytvoření tabulky) vyplní první sloupec start_timestamp se strojem při vytvoření tabulky. Žádost (2 vyplnění tabulky) ukazuje, že tomu tak je. V tomto případě zůstává druhý sloupec next_timestamp nulový: všechny složky data a času jsou "0" ve všech pozicích, ale ne NULL, jako celé pole. Pokud odeberete odkaz z dotazu do pole start_datetime a funkce se vyplní nyní (), pak pole start_datetime bude obsahovat hodnotu NULL. Horní částčást obrazu zobrazuje tabulku pomocí zásyp, spodní část - tabulku bez použití now (). Rozdíly jsou významné.


Unix a vlastní čas

Pole tabulky MySQL časové razítko & Co. datumtime se liší v plnění a použití. Například varianta:
  • int mktime ([int hodina [, int minut [, int druhý [,
  • pro přístup pro typ datetime pole, pak čas jako typ pole časového razítka Bolshe oryentyruetsya v závislosti témat jazyk MySQL.S Avto Požadovat pole času a většina эffektyvno bezopasno, vhodné oryentyrovatsya na způsoby, jak pracovat s MySQL časovým razítkem v predlahaemom funkční v Volume ega jmenováním kotoroe opredeleno údajů základnových Samoa. Tato známka sobstvennыy Jejího okamžiku času, formátu prezentaci času
    .
    Typ datetime více než otnosym co TIME éry v prezentaci Unix a assotsyyrovat ego může být například s funkcemi PHP mktime () nebo obыchnыm formátu tekstovыm, jako jsou:
    Zde peremennaya $ cStndDate - Normal Text kotoryya ynterpretyruetsya Jak požádat o něco, napysannoe v datы formiátu /čas. Pokud peremennaya správně zadán správný nuzhnoe tablytsы zapyshetsya nuzhnoe znachenye.Polzovatelskoe Time - je požadavky úkolů. Není zdaleka vždy nutné poskytovat databázi všechna práva na časové řízení. Vždy bude dělat všechno svým vlastním způsobem. To není vždy správný, například nuzhnы Název Rusové měsíců nebo záznamy osobыy pořadí den, měsíc a rok.

    Časová pásma a správná logika

    Práce s MySQL časové značky & amp; datetime vyžaduje péči a přesnost. Další věc je její vlastní formát dat,psané v prostém textu. Je pravda, že v tomto případě jsou přínosy standardních datových typů, například třídění nebo výpočtů přes data, ztraceny, ale existují žádoucí výhody.
    V každém případě by vývojář měl být velmi opatrný. Časové pásma, nastavení lokalizace a mnoho dalších nuancí mohou způsobit nedorozumění. Pokud se něco při práci s datem stalo NULL nebo nula ve všech pozicích, je třeba nejprve hledat chybu ve svém vlastním algoritmu. MySQL, data pole a časové funkce jsou extrémně stabilní a správné.

    Související publikace