Kako uporabljati MySQL: timestamp in datetime

MySQL omogoča razvijalcem sposobnost za delo s časom na različne načine. Obstajajo vrste podatkov, ki opisujejo polja v tabelah. V poizvedbah je veliko funkcij. Na voljo sta začasna lokalizacija in sprememba časovnih pasov v sejah, konfiguracija MySQL in uporaba časa operacijskega sistema.

Za uporabo podatkovnih tipov in spreminjanje časovnih pasov je odgovoren razvijalec, ki mora upoštevati čas stranke in čas strežnika. Ne sovpadajo vedno.

Opis tabel s časovnimi polji

V primeru so tri različice predstavitve časa. Dve sta vrsti časovnega žiga MySQL (start_timestamp, next_timestamp), eden je vrsta datetime MySQL (start_datetime) in vmesnik je možnost v obliki niza znakov (work_income).


Tip časovnega žiga je naravni za format MySQL za čas beleženja dogodkov, zavzema 8 bajtov, je celo število in ima eno lastnost: prvi stolpec se zapolni z avtomatom v času ustvarjanja: poizvedba

. Drugi in vsi nadaljnji ostajajo ničli, vendar to ni NULL. Poizvedba

vsebuje funkcijo MySQL timestamp now (), ki se uporablja za zapolnitev polja start_datetime.
V tem primeru je razvidno, da bo tabela, ki jo generira poizvedba (1 ustvarjanje tabele), izpolnila prvi stolpec start_timestamp s strojem, ko je tabela ustvarjena. Zahteva (2, ki dopolnjuje tabelo) kaže, da je to točno tako. V tem primeru drugi stolpec next_timestamp ostane null: vse komponente datuma in časa so "0" v vseh položajih, ne pa NULL, tako kot celotno polje. Če odstranite povezavo iz poizvedbe v polje start_datetime in funkcijo, izpolnite zdaj (), potem bo polje start_datetime vsebovalo vrednost NULL. Vrhdel slike prikazuje tabelo s funkcijo polnjenja, spodnji del pa je tabela brez uporabe zdaj (). Razlike so velike.


Časovni in prilagojeni čas Unixa

časovni žig MySQL & amp; datetime se razlikujejo pri polnjenju in uporabi. Na primer, možnost:
  • int mktime ([int hour [, int minute [, int second [,
  • je na voljo za polje tipa datetime, medtem ko je polje vrste timestamp bolj usmerjeno na funkcije jezika MySQL samega. Da bi najučinkoviteje in varneje uporabljali časovna polja, je priporočljivo, da se osredotočite na to, kako delati s časovnim žigom MySQL v predlagani funkcionalnosti, v tem namenu, ki ga opredeljuje sama baza podatkov, in je njegova lastna časovna oznaka, časovna predstavitev
    .
    Vrsta datetime se nanaša bolj na čas v predstavitvi era yunksov in se lahko na primer poveže s funkcijo PHP mktime () ali običajno obliko besedila, na primer:
    Tu je spremenljivka $ cStndDate navadno besedilo, ki se v poizvedbi interpretira kot nekaj, kar je zapisano v obliki datuma /časa. Če je spremenljivka podana pravilno, se v želeno polje tabele vnese potrebna vrednost, za katero je potreben čas uporabnika. Daleč od tega, da je baza podatkov vedno potrebna, da bi imela vse pravice za upravljanje časa. Vedno bo počela vse na svoj način. To ni vedno pravilno, na primer, potrebujete imena ruskih mesecev ali poseben vrstni red dneva, meseca in leta.

    Časovni pasovi in ​​pravilna logika

    Delo s časovnim žigom & amp; datetime zahteva skrb in natančnost. Druga stvar je lastna oblika datuma,napisano v golem besedilu. Res je, da so v tem primeru koristi standardnih vrst datumov, na primer razvrščanje ali izračunavanje datumov, izgubljene, vendar so zaželene koristi.
    V vsakem primeru mora biti razvijalec zelo previden. Časovni pasovi, nastavitve lokalizacije in številne druge nianse lahko povzročijo nekaj nesporazumov. Če je nekaj pri delu z datumom postalo NULL ali ničle v vseh položajih, je treba najprej poiskati napako v svojem lastnem algoritmu. MySQL, njena datumska polja in časovne funkcije so izredno stabilne in pravilne.

    Sorodne publikacije