Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][PHP]Odejmowanie dat
kemes123
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 15.04.2010

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


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.
Go to the top of the page
+Quote Post
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




http://dev.mysql.com/doc/refman/5.1/en/dat...nction_datediff
Go to the top of the page
+Quote Post
kemes123
post
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 15.04.2010

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


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
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




jestes pewien ze masz tabele o nazwie "skrzynka3DATEDIFF" ?
Go to the top of the page
+Quote Post
kemes123
post
Post #5





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 15.04.2010

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


poprostu zabrakło spacji ale to nic nie zmienia
Go to the top of the page
+Quote Post
Pawel_W
post
Post #6





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


  1. SELECT * FROM skrzynka3 DATEDIFF( '$date2', '$date1' ) LIMIT 0 , 30

aha, i co to ma niby robić?
nie brakuje ci tu jakiegoś where?
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




wiem ze zabraklo spacji. chcialem ci tym pytanie zwrocic wlasnie na to uwage (IMG:style_emoticons/default/smile.gif)

innym bledem jest to, ze nie masz WHERE, nie masz pola po którym szukasz. To są też rzeczy dosc oczywiste (IMG:style_emoticons/default/winksmiley.jpg)
Ale ty chyba chcesz te roznice wyswietlic. To datediff powinno byc po select a nie po nazwie tabeli - tez dosc znana sprawa (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
kemes123
post
Post #8





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 15.04.2010

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


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
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




pokaz kod php, pokaz jak to odbierasz, pokaz jak wyglada zapytanie po utworzeniu go:
echo $sql;
Go to the top of the page
+Quote Post
kemes123
post
Post #10





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 15.04.2010

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


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ę.
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




yyy... w phpmyadmin wkladasz taki kod:
SELECT DATEDIFF( '$date3', '$date1' )
?
A niby skad ten phpmyadmin ma wiedziec co się kryje pod $date3 i $date1 ?
Go to the top of the page
+Quote Post
mortus
post
Post #12





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


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.
Go to the top of the page
+Quote Post
kemes123
post
Post #13





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 15.04.2010

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


Wprowadzając date2,date1 bezpośrednio z phpmyadmina pojawia się wartość NULL
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




pokaz dokladnie jak teraz wyglada to zapytanie.
Go to the top of the page
+Quote Post
mortus
post
Post #15





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


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.

Ten post edytował mortus 21.04.2010, 08:07:37
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 02:46