Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Przechowywanie dat w tabelach.
Grzesiek23
post 22.02.2011, 17:26:46
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 25.12.2009

Ostrzeżenie: (0%)
-----


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"?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Valdi_B
post 22.02.2011, 18:53:57
Post #2





Grupa: Zarejestrowani
Postów: 107
Pomógł: 30
Dołączył: 19.02.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Grzesiek23
post 22.02.2011, 19:51:43
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 25.12.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Valdi_B
post 22.02.2011, 22:20:34
Post #4





Grupa: Zarejestrowani
Postów: 107
Pomógł: 30
Dołączył: 19.02.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Grzesiek23
post 23.02.2011, 13:32:32
Post #5





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 25.12.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:29