Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Znacznik czasu, Jaki wybrać?
Blackhole
post
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

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


Cześć.

W jednej z kolumn tabeli potrzebuję zapisać znacznik czasu. Potrzebny jest po to, bym mógł obliczyć przedział czasowy pomiędzy tymi znacznikami.
Chyba najlepiej, jakby wpisywany był znacznik UNIX-owy czasum czyli ilość sekund, która upłynęła od roku 1970.

Jak mam prawidłowo zadeklarować tę kolumnę ze znacznikami :?:

Teraz mam tak, iż do kolumny zadeklarowanej jako "date" wpisuję wynik działania funkcji "mktime()" z php. Okazuje się jednak, że do bazy wpisana zostaje data w formacie "Y-m-d". Jak tego uniknąć :?:

Ten post edytował Blackhole 22.03.2005, 12:12:48


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
SongoQ
post
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%)
-----


typ pola timestamp

Wkladasz w ten sposob TO_TIMESTAMP('data', 'maska')

Przykład: TO_TIMESTAMP('2005-03-22', 'YYYY-MM-DD')


--------------------
Go to the top of the page
+Quote Post
Blackhole
post
Post #3





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

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


Ok. Ustawiłem kolumnę na "timestamp". Do niej zapisuję wynik działania "mktime()". PostgreSQL wywala mi takie coś:
Cytat
ERROR: column "data" is of type timestamp without time zone but expression is of type integer.
HINT: You will need to rewrite or cast the expression.


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
SongoQ
post
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%)
-----


Musisz rzutowac na typ timestamp.


--------------------
Go to the top of the page
+Quote Post
Blackhole
post
Post #5





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

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


A czyż funkcja "mktime()" nie zwraca 'timestampa'?
Mogę prosić o przykład kodu?


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
SongoQ
post
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%)
-----


1 rzecz to timestamp w postgresie != od timestamp w unixie.

W postgresie jest zapisywany z dokladnascia do milisekund.

Przyklad zapisania daty na timestamp do postgresa podalem Ci powyzej, jesli masz date w postaci timestamp unixowej to zapisujesz w ten sposob:

  1. INSERT
  2. INTO test (DATA) VALUES ('1970-01-01 00:00:00'::timestamp + '1111516654'::interval)


lub

  1. INSERT
  2. INTO test (DATA) VALUES ('1970-01-01 00:00:00'::timestamp + 1111516654::text::interval)


lub z wykorzystaniem abstime

  1. INSERT
  2. INTO test (DATA) VALUES (abstime(1111516654))


--------------------
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: 22.08.2025 - 00:52