Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Przechowywanie dat w tabelach.
Forum PHP.pl > Forum > Przedszkole
Grzesiek23
Witam!

Chciałem się poradzić. Piszę obecnie komponent pod J!1.6.

Zauważyłem, że sporo dodatków dla J! jako datami posługuje się ciągiem liczb - TimeStamp, ale kolumna zdefiniowana jako int (chyba w celu uniknięcia automatycznej aktualizacji).
Natomiast w samej (czystej) J! (czy to 1.5 czy 1.6) w wielu kolumnach w tabeli spotkałem się z formatem DateTime.


Chciałbym się dowiedzieć, czy istnieją jakieś powody, świadczące o wyższości zapisu daty w liczbach, a stosowaniu datetime.
I dlaczego niektórzy, którzy tworzą dodatki (czy to pod J!, czy inne CMSy) zamiast dat stosują ten "zamiennik"?
Valdi_B
Co do "wyższości zapisu" - poczytaj stronę http://dev.mysql.com/doc/refman/5.1/en/sto...quirements.html
sekcja "Storage Requirements for Date and Time Types".

Data jest kodowana na 3 bajtach, natomiast DATETIME - na 8 (4 bajty na część "data", 4 bajty na część "czas", obie liczby - całkowite).

Co do korzystania z pól typu TIMESTAMP - uważaj na fakt, że dopuszczalny zakres dat jest mniejszy.
Grzesiek23
Czyli np przetrzymywania dat urodzin użytkowników odpada (1970).

Jednak już do dat, które będą zaczynać się od dzisiaj, można już rozwazyć timestamp.
Valdi_B
Skoro sprawa dotyczy dat urodzin, to "naturalnym" rozwiązaniem jest po prostu data.
Gdybyś rejestrował zdarzenia np. w zakresie ruchu pociągów - to DATETIME.
Dopiero gdy zależy nam na rozdzielczości rzędu (np.) milisekund potrzebujemy TIMESTAMP
Grzesiek23
Wiesz, patrzyłem chociażby na PHPBB - daty przetrzymywane tam są w timestamp. O ile dobrze myślę, to nie jest czysty timestamp, ponieważ kolumna zdefiniowana jest jako int.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.