Jak korzystać z MySQL: datownik i datetime

MySQL daje programistom możliwość pracy z czasem na różne sposoby. Istnieją rodzaje danych, które opisują pola w tabelach. W zapytaniach jest wiele funkcji. Dostępna jest tymczasowa lokalizacja i zmiana stref czasowych w sesjach, konfiguracja MySQL i wykorzystanie czasu systemu operacyjnego.

Odpowiedzialność za stosowanie typów danych i zmianę stref czasowych spoczywa na programistach, które muszą wziąć pod uwagę czas klienta i czas serwera. Nie zawsze się pokrywają.

Opis tabel z polami czasowymi

W tym przykładzie występują trzy warianty reprezentacji czasu. Dwa to typ znacznika czasu MySQL (start_timestamp, next_timestamp), jeden to typ datetime MySQL (start_datetime), a interfejs to opcja w postaci ciągu znaków (work_income).


Typ znacznika czasu jest rodzimy dla formatu MySQL czasu rejestrowania zdarzeń, zajmuje 8 bajtów, jest liczbą całkowitą i ma jedną cechę: pierwsza kolumna jest wypełniana przez automat w momencie tworzenia: zapytanie

. Drugi i wszystkie kolejne pozostają zerowe, ale nie jest to NULL. Query

zawiera funkcję znacznika czasu MySQL now () używaną do wypełnienia pola start_datetime.
W tym przykładzie widać, że tabela wygenerowana przez zapytanie (1 tworząc tabelę) wypełni pierwszą kolumnę start_timestamp maszyną podczas tworzenia tabeli. Żądanie (2 wypełnienie tabeli) pokazuje, że tak właśnie jest. W tym przypadku druga kolumna next_timestamp pozostaje pusta: wszystkie składniki daty i czasu mają wartość "0" we wszystkich pozycjach, ale nie NULL, podobnie jak całe pole. Jeśli usuniesz łącze z zapytania do pola start_datetime i funkcji, wypełni ono teraz (), wtedy pole start_datetime będzie zawierać wartość NULL. Góraczęść obrazu pokazuje tabelę za pomocą funkcji wypełniania, dolna część to tabela bez użycia teraz (). Różnice są znaczne.


Unix czas i niestandardowy czas

MySQL znacznik czasu & amp; datetime różnią się wypełnianiem i używaniem. Na przykład, wariant
  • int mktime ([Int godzin [int minut [int sekund [
  • , do dostępu do typu pola daty i czasu, a następnie po czasie, jak typ pola znacznika czasu bolshe oryentyruetsya w zależności od zagadnień MySQL.S język Avto Wymagaj pole czasu i najbardziej эffektyvno bezopasno, wskazane oryentyrovatsya na temat sposobów pracy z MySQL timestamp w predlahaemom funkcjonalną ego Tom mianowaniem kotoroe opredeleno danych bazowych Samoa. Ten znaczek sobstvennыy Jej momencie czasu, formatu prezentacji czasu.
    Typ datetime odnosi się bardziej do czasu reprezentacji epoki yunks i może być powiązany z, na przykład, funkcją PHP mktime () lub zwykłym formatem tekstu, na przykład:
    Tutaj zmienna $ cStndDate jest zwykłym tekstem interpretowanym w zapytaniu jako coś zapisanego w formacie daty /czasu. Jeśli zmienna jest określona poprawnie, wymagana wartość jest wprowadzana do pożądanego pola tabeli, a czas użytkownika jest wymaganiem zadania. Nie zawsze jest konieczne zapewnienie bazy danych wszystkich praw do zarządzania czasem. Zawsze będzie robiła wszystko po swojemu. To nie zawsze jest poprawne, na przykład nuzhnы Tytuł rosyjska miesięcy lub rekordy osobыy porządku dnia, miesiąca i roku.

    stref czasowych i prawidłowe logiczny

    Praca z MySQL datownika & Sons, Inc. datetime wymaga opieki i dokładności. Kolejną rzeczą jest własny format daty,napisane prostym tekstem. To prawda, że ​​w tym przypadku korzyści standardowych typów dat, na przykład, sortowania lub obliczania przez daty, są tracone, ale są pożądane korzyści.
    W każdym przypadku programista powinien zachować szczególną ostrożność. Strefy czasowe, ustawienia lokalizacji i wiele innych niuansów mogą powodować pewne nieporozumienia. Jeśli coś podczas pracy z datą stało się NULL lub zer we wszystkich pozycjach, należy najpierw szukać błędu w swoim własnym algorytmie. MySQL, jego pola daty i funkcje czasu są wyjątkowo stabilne i poprawne.

    Powiązane publikacje