![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 0 Dołączył: 4.01.2005 Skąd: piczu.info Ostrzeżenie: (10%) ![]() ![]() |
robie szablon z obsluba newsow i zastanawiam sie jak mam uzyskiwac date w php abym mogl ja pozniej zapisac w MySQL, zauwazylem ze data w bazie nie jest jest zapisywana w formacie unix'owym. Moze mozna to jakos zmienic ?
Potrzebuje; odczyt daty w php => zapis daty w mysql odczyt daty w mysql => zapis daty w php jak bedzie najprosciej ? z gory dziekuje za pomoc. -------------------- pozdrawiam :)
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
W MySQLu masz timestamp, to jak bedziesz wyswietlal to juz jest Twoja sprawa, konwetujesz date do takiej postaci jaka Ci pasuje.
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 0 Dołączył: 4.01.2005 Skąd: piczu.info Ostrzeżenie: (10%) ![]() ![]() |
hmm u mnie data w mysql przedstawia sie tak : 20050416231406, zadeklarowane jako timestamp(14), ale to nic nie ma wspolnego z data w unix, ktora odlicza czas od 1970, no i nie moge jej uzyc do strftime albo cos podobnego.
-------------------- pozdrawiam :)
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Chodzilo mi o pole timestamp
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 0 Dołączył: 4.01.2005 Skąd: piczu.info Ostrzeżenie: (10%) ![]() ![]() |
aha czyli zrobic pole timestamp jak int ?
-------------------- pozdrawiam :)
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Tak wiekszosc baz danych posiada takie pole, jesli nie to pole data i wtedy podczas dodawnia i wyciagania z bazy konwertowanie. W Twoim przypadku uzyl bym timestampa
-------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 449 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Ja najczesciej przechowuje date w bazie MySQL w polu CHAR(10) w postaci sekundowej
-------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 0 Dołączył: 4.01.2005 Skąd: piczu.info Ostrzeżenie: (10%) ![]() ![]() |
jak dobrze licze to w char zajmuje ci to 10 bajtow a w int tylko 4.
Ten post edytował piczu 16.04.2005, 22:52:05 -------------------- pozdrawiam :)
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
@yavaho Wydaje mi sie ze to jest nie prawidlowe, poniewaz stworzono typy pol zeby trzymac odpowiednie danem, char jak nazwa wskazuje przechowywane sa dane, timestamp unixowy zapis czasu od wiadomo jakiej daty, format jest stalu i szybciej dziala przy wuciaganiu, inaczej struktura jest zorganizowana. Jesli trzymasz juz w bazie sekundy to lepiej uzyc inta. Kiedys dopadlem jakas ksiazeczke wlasie o typach pol i ich przeznaczeniu i autor podawal przyklady jak moze spasc szybkosc zapytania dla niewlasciwych uzyc pol, a wiadomo lepiej jak sie zapytanie wykonuje 0,50s niz 5s
-------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 449 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Dalem ten przyklad jako alternatywe do innych typow danych przechowywania daty w MySQL. Czasem taki sposob jest bardzo wygodny w dodatku zmiejsza ilosc przeprowadzanych operacji przez php, ale oczywiscie w konkretnych z gory zaplanowanych projektach. Ale znowu ten sposob wyklucza prawie calkowicie operacje przeprowadzane na dacie przez MySQL.
A co do ilosci zajetych bajtow to w tym przypadku jest to 10. Aby przechowac date w formacie sekundowym trzeba uzyc DATETIME (8 bajtow) lub TIMESTAMP (4 bajty) ale z ograniczeniem od 1970r. do 2037r. W INT nie pomiesci sie data w formacie sekundowym, trzeba uzyc BIGINT (8 bajtow). Format CHAR nie jest idealnym rozwiazaniem jezeli chodzi o wydajnosc bazy danych, ale w pewnych przypadkach nie mozna znalezc innego wyjscia. -------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 0 Dołączył: 4.01.2005 Skąd: piczu.info Ostrzeżenie: (10%) ![]() ![]() |
zrobilem przy pomocy inta i sa tez sekundy.int bez znaku jest z przedzialu 0 do 4 294 967 295 wiec nie ma problemu z tym do roku 2038
![]() -------------------- pozdrawiam :)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 04:16 |