Datum a čas v MySQL: formát dat, řazení a lokalizace

Přirozené zobrazení času je datum: rok, měsíc, den a čas: hodiny, minuty sekundy. Některé aplikace mají dny v týdnu a zlomek sekundy, ale ve všech aplikacích jsou vždy potřebné nástroje pro zpracování časových proměnných a jejich prezentace přirozeným způsobem.

Čas je charakterizován místem v prostoru, kde nastane událost, a bodem, kde může být použit. Jedná se o obecný postup, který definuje potřebu lokalizace a vykazování časových pásem.

MySQL: Datové typy pro časový záznam

Formáty typů dat v systému správy databází MySQL jsou pět deskriptorů (datum, čas, časová značka a rok). Vývojář často preferuje univerzální variantu: char
  • - pokud existuje objektivní důvod použít jeho interpretaci funkce MySQL date_format () nebo poskytnout nezbytné podmínky pro správné řazení.



    V tomto příkladu se vytvoří tabulka možností pro reprezentaci dat a do ní se vloží dva řádky. První řádek obsahuje data v přírodním formátu a v polích vyplňování není žádné pole "x_timestamp". Druhý řádek ve všech polích používá funkci MySQL now (). Je třeba poznamenat, že zadané pole je vyplněno v obou případech.

    Časový štítek a jeho formát

    Tento typ časového pole (časové razítko) a použití funkce MySQL date_format () jsou extrémně efektivní pro vytváření časových značek. Toto "nemá žádný vztah" k žádnému algoritmu. V prezentaci data nebo času nevyžaduje žádné zvláštní zkoumání. Je to jen dočasná značka - bod na vývojové lince.


    Pole tohoto typu je vyplněno v okamžiku vytvoření řádku. Není třeba věnovat pozornost, ale vždy a v každém dotazu, na který se můžete spolehnout: MySQL date_format () datetime = čas, kdy byla řádka vytvořena. Je důležité, samozřejmě, nikdy ji neměnit. Linka je vytvořena a její čas vytvoření je určen pouze jednou. Nemůžete to upravit. Toto rozhodnutí má mnoho oblastí použití:
  • protokol o dialogu s návštěvníkem;
  • Denní bezpečnostní deník;
  • sledování činností zaměstnanců;
  • kalendář událostí;
  • schránky atd.
  • Čas je především série událostí. Vše, co souvisí s webové zdroje, který usiluje o dokonalost, rychlost růstu a reálný odraz reality nějakým způsobem spojena s správné zobrazení času:
  • ve formě, v jaké je - není viditelné pro uživatele, ale k dispozici vývojáři;
  • v podobě, v níž by mělo být zobrazeny na webových zdrojů používané v algoritmu, uvažovaného v dokumentu, a tak dále. D.
  • mnohostranný a závisí na místě v prostoru, kde se akce konala v rámci bod místa, kde by měl být použit nebo odrážen.

    Obecným smyslem MySQL vybrat DATE_FORMAT)

    Žádost o vzorek dat (- hlavní výraz v jazyce SQL. Je to tak v poptávce, která je při tvorbě požadovaného vzorku velmi důležité rychle převést svůj obsah do správného tvaru, aniž by se obtěžovala pokročilé návrhy algoritmů.
    Z tohoto pohledu MySQl date_format () umožňuje provádět libovolnou hodnotu data a času ve formátu, ve kterém je potřebahned v době podání žádosti. Tabulka obsahuje dva řádky a dvě identická pole: "x_timestamp" a "x_datetime". Žádost se týká těchto dvou polí, ale specifikuje jejich jména, předávání PHP, ve formátu data MySQL přímo.
    Formátovací řetězec může být libovolný. Obsah formátovacího řetězce se přenáší do výsledku dotazu ve formátu "tak, jak je" při nahrazení klíčových prvků ve formátu "% *", kde symbol hvězdičky znamená symbol formátu: rok, měsíc, den a hodinu.

    Formát a třídění národního času

    Nejlepší řešení pro používání funkce jazyků SQL je použití data ve standardu MySQL. Neexistují žádné problémy s třídění, ani s výpočty ani formátováním ve stylu MySQL date_format (). Ale ne všechny země mají pracovní týden, který začíná v neděli, není vždy považován za normální reprezentaci času v 12hodinovém formátu a ve všech jazycích je pojem "AM" a "PM". Existuje mnoho takových národních zvláštností, ale převážná většina z nich leží mimo funkci jazyka SQL.
    Je pochybné, že obecně existuje takový dialekt SQL, který se může rozšířit na účet národní barvy zemí mimo hranice termínu "lokalizace". Ve skutečnosti není překvapující, že "lokalizace" v praxi znamená více auto-nahrazení některých slov (kombinací) ostatním v závislosti na jazyce. Ne vždy však národní jazyk určuje vše, v první řadě není v žádném případě spojeno se správným znázorněním času.

    Klíč události a datový klíč

    Čas se nikdy nevrací, je tedy dokonalým klíčem pro libovolnou linii, libovolnou tabulku a libovolnou databázi. Dvě události mohou nastat současně, pokud je jejich intervalsledování více než časový rozdíl mezi jejich vzhledu. Například dva uživatelé přihlášeni k webu najednou, ale v různých sekundách této minuty.
    PHP má zajímavé řešení: existuje objekt a je instancí objektu. Je myšlenka statického "proměnné"
  • private static $ iUniqueNo = -1; //"W" je vždy jedinečné číslo
  • //každé volání této funkce je $ iUniqueNo a další
  • //po dobu jedné sekundy se nikdy nestane znovu.
  • veřejná funkce IncUniqueNo () {
  • , pokud (self :: $ iUniqueNo a 99)
  • s vlastním :: $ iUniqueNo = 0;
  • jiného
  • s vlastním :: $ iUniqueNo ++;
  • }
  • Není to fantazírování, sloučení do jednoho: rok, měsíc, den, hodina, minuta, sekunda a $ iUniqueNo, dostaneme: HHHHMMDDchchmmssUU - jedinečný klíč ("W" = "$ iUniqueNo") pro nahrávání a současně časové razítko pro jakékoliv použití. Je ideální v rámci těchto databází a časové funkce MySQL DATE_FORMAT (), která umožňuje jednoduše čas a klíč s jedním pole „časové razítko“ současně.

    Související publikace