kemes123
15.04.2010, 12:12:08
Witam
Poszukuję rozwiązania dotyczącego odejmowania dat. Próbowałem zastosować kilka rozwiązań z forum ale żadne nie przyniosło żądanego efektu.
Posiadam 3 tabele z datami
date1 - data rozpoczęcia
date2 - data ponownego kontaktu
date3- data zakończenia
Wszystkie są w formacie DATETIME.
Poszukuję możliwości wyświetlania dla każdego wpisanego rekordu informacji o czasie trwania zgłoszenia czyli date3-date1 z uwzględnieniem godzin, oraz informację ile pozostało czasu do daty ponownego kontaktu zliczanej na podstawie aktualnej daty.
phpion
15.04.2010, 12:16:07
kemes123
15.04.2010, 12:32:51
Próbowałem z dateiff (może źle robię zapytanie) w samym zapytaniu wpisuje się datę w 2007-10-10 czy można zrobić w ten sposób:
SELECT *
FROM skrzynka3DATEDIFF( '$date2', '$date1' )
LIMIT 0 , 30
i pojawia się komunikat
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( '$date2' , '$date1' )
LIMIT 0, 30' at line 1
nospor
15.04.2010, 12:51:33
jestes pewien ze masz tabele o nazwie "skrzynka3DATEDIFF" ?
kemes123
15.04.2010, 13:14:02
poprostu zabrakło spacji ale to nic nie zmienia
Pawel_W
15.04.2010, 13:16:32
SELECT * FROM skrzynka3 DATEDIFF( '$date2', '$date1' ) LIMIT 0 , 30
aha, i co to ma niby robić?
nie brakuje ci tu jakiegoś where?
nospor
15.04.2010, 13:17:03
wiem ze zabraklo spacji. chcialem ci tym pytanie zwrocic wlasnie na to uwage

innym bledem jest to, ze nie masz WHERE, nie masz pola po którym szukasz. To są też rzeczy dosc oczywiste

Ale ty chyba chcesz te roznice wyswietlic. To datediff powinno byc po select a nie po nazwie tabeli - tez dosc znana sprawa
kemes123
15.04.2010, 13:42:44
Zrobiłem tak Wprowadziłem 3 różne daty do bazy po wykonaniu zapytania
SELECT DATEDIFF( '$date3', '$date1' )
za każdym razem zwracana jest warość null
DATEDIFF( '$date3', '$date1' )
NULL
nospor
15.04.2010, 13:44:39
pokaz kod php, pokaz jak to odbierasz, pokaz jak wyglada zapytanie po utworzeniu go:
echo $sql;
kemes123
15.04.2010, 13:53:26
Obecnie testuje to bezpośrednio w phpmyadmin nie wprowadzałem jeszcze zapytania do kodu (moja wiedza jest mierna) i jeszcze nie wymyśliłem jak wygeneruję to w kodzie. Ale pod samym phpmyadminem powinien pokazać różnicę.
nospor
16.04.2010, 06:11:06
yyy... w phpmyadmin wkladasz taki kod:
SELECT DATEDIFF( '$date3', '$date1' )
?
A niby skad ten phpmyadmin ma wiedziec co się kryje pod $date3 i $date1 ?
mortus
16.04.2010, 08:45:31
W ogóle po co w tym zapytaniu jakiekolwiek zmienne, przecież date3 i date1 to nazwy kolumn, a nie jakieś daty przekazywane ze skryptu PHP.
kemes123
21.04.2010, 08:01:32
Wprowadzając date2,date1 bezpośrednio z phpmyadmina pojawia się wartość NULL
nospor
21.04.2010, 08:06:13
pokaz dokladnie jak teraz wyglada to zapytanie.
mortus
21.04.2010, 08:07:16
Wypróbuj zapytanie:
SELECT DATEDIFF(date3, date1) FROM skrzynka3;
Jeśli nie zadziała, to zrób dump-a bazy danych i wklej tutaj. Może struktura tabeli nie pozwala na wykonanie takiego zapytania.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.