[php][mysql] Jak odjąć od siebie 2 daty ?

0

Mam w bazie 2 daty typu TIMESTAMP lub DATETIME postaci: 0000-00-00 0000

Jak je teraz odjąć zeby uzyskac np ilosc minut, sekund itd.. ?
Znalazlem funkcje DATEDIFF ale ona zwraca tylko dni.

0

na stronie http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html masz funkcje do obsługi dat w mysql, może się przydać np timediff albo unix_timestamp

ja zawsze przechowuję daty jako int, wtedy nie ma problemów z obsługą tego a zwłaszcza wyliczaniem różnic itp... chociaż może to niezbyt poprawnie

0

Zamień je na czas w postaci Unix-a, czyli liczbę sekund jaka upłynęła od jakiejś tam daty (jest do tego funkcja PHP) a później oblicz różnicę.

0

Wiem ze mozna zamienic na unixowym znacznik czasu, ale wydaje mi sie ze jak jest takie pole w mysqlu to po to zeby wlasnie Od razu mozna bylo wykonywac jakies operacje, tak mi sie wydaje.
Bo mozna unixowym zncznik czasu przechowywac jako int i tez sie da, ale skoro jest pole timestamp to chyba po cos jest.

Albo lepiej zainstalowac mysql wersje min 5.0.0. i uzyc funkcji juz wbudowanej:

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

Returns the integer difference between the date or datetime expressions datetime_expr1 and datetime_expr2. The unit for the result is given by the unit argument. The legal values for unit are the same as those listed in the description of the TIMESTAMPADD() function.

mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
-> 3
mysql> SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01');
-> -1
TIMESTAMPDIFF() is available as of MySQL 5.0.0.

Gdzie unit to znacznik np YEAR,MINUTES,SECOND,HOUR itd...

1 użytkowników online, w tym zalogowanych: 0, gości: 1