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.
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.
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
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ę.
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...