Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Niezamierzone działanie w bazie MySql
Rid
post
Post #1





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Utworzyłem w bazie kolumnę w tabeli:
  1. DATA TIMESTAMP(12) NOT NULL,
,mimmo ,iż nie deklarowałem ,żadnego polecenia dotyczącej tej kolumny,automatycznie zapisała się data w formacie 2010-12-27 16:22:45,tymczasem jak czytałem na stronie że format ten powinien zapisać się:
Cytat
TIMESTAMP(12) RRMMDDGGMMSS
czyli 10-12-27 16:22:45 a odczytany 101227162245.Poza tym dlaczego,mi to zapisało automatycznie tak jak autoincrement,przecież nie wysyłałem ,żadnego zapytania insert do data z poleceniem now().Może to poprzez wartość pola NOT NULL??

Ten post edytował Rid 27.12.2010, 16:48:46
Go to the top of the page
+Quote Post
Zbychu666
post
Post #2





Grupa: Zarejestrowani
Postów: 14
Pomógł: 5
Dołączył: 13.07.2008

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


Sprawdź u źródła - w dokumentacji MySQL nie ma nic o możliwości zmiany formatu TIMESTAMP przy definicji tabeli:
http://dev.mysql.com/doc/refman/5.0/en/timestamp.html

Jest natomiast informacja że w starszych wersjach działało to inaczej i przed wersją 4.1 faktycznie była możliwość podawania formatu:
http://dev.mysql.com/doc/refman/4.1/en/tim...mp-pre-4-1.html

Innymi słowy stronka którą podałeś ma jakieś info sprzed 10 lat smile.gif
Go to the top of the page
+Quote Post
acainoks
post
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 29.10.2009

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


NOT NULL to swoją drogą... snitch.gif
Gdy ja używałem tabel z polem TIMESTAMP aktualizował te pole przy KAŻDYM użyciu wiesza tej tabeli jeżeli tego nie chcesz to używaj DATETIME albo jeszcze inaczej używaj pola INT i zapisuj czas jako UNIX_TIMESTAMP() zawsze możesz to prze-konwertować w PHP do jakiego formatu chcesz.
Go to the top of the page
+Quote Post
Rid
post
Post #4





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Dziękuje bardzo za zainteresowanie-użyłem time(); i zapis do varchar -właśnie chodziło mi o coś nieskonwertowanego.

Ten post edytował Rid 29.12.2010, 22:38:39
Go to the top of the page
+Quote Post
phpion
post
Post #5





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Dlaczego nie użyjesz po prostu DATETIME? Po to ten typ danych został stworzony, by go używać. Zaglądając bezpośrednio do bazy danych od razu widzisz co to za data, a nie musisz kombinować z "odkodowaniem". Zawsze po stronie PHP możesz dowolnie przekształcić tą datę poprzez strtotime i date.

Jeśli jednak koniecznie chcesz zapisywać znacznik czasu to typem pola zrób INT, a nie VARCHAR. Będzie to zdecydowanie lepsze rozwiązanie (chociażby ze względu na możliwość wyszukiwania po zakresie czasowym).
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 Aktualny czas: 21.08.2025 - 16:56