Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP]Odejmowanie dat
Forum PHP.pl > Forum > Przedszkole
kemes123
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.
kemes123
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
jestes pewien ze masz tabele o nazwie "skrzynka3DATEDIFF" ?
kemes123
poprostu zabrakło spacji ale to nic nie zmienia
Pawel_W
  1. SELECT * FROM skrzynka3 DATEDIFF( '$date2', '$date1' ) LIMIT 0 , 30

aha, i co to ma niby robić?
nie brakuje ci tu jakiegoś where?
nospor
wiem ze zabraklo spacji. chcialem ci tym pytanie zwrocic wlasnie na to uwage smile.gif

innym bledem jest to, ze nie masz WHERE, nie masz pola po którym szukasz. To są też rzeczy dosc oczywiste winksmiley.jpg
Ale ty chyba chcesz te roznice wyswietlic. To datediff powinno byc po select a nie po nazwie tabeli - tez dosc znana sprawa winksmiley.jpg
kemes123
Zrobiłem tak Wprowadziłem 3 różne daty do bazy po wykonaniu zapytania
  1. SELECT DATEDIFF( '$date3', '$date1' )
za każdym razem zwracana jest warość null
  1. DATEDIFF( '$date3', '$date1' )
  2. NULL
nospor
pokaz kod php, pokaz jak to odbierasz, pokaz jak wyglada zapytanie po utworzeniu go:
echo $sql;
kemes123
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
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
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
Wprowadzając date2,date1 bezpośrednio z phpmyadmina pojawia się wartość NULL
nospor
pokaz dokladnie jak teraz wyglada to zapytanie.
mortus
Wypróbuj zapytanie:
  1. 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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.