Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> DATEDIFF
visioner76
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 1.03.2012

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


Witam, mam problem z zapytaniem do bazy.

baza w skrócie składa się z 3 pól:

data_wprowadzenia
status: T/N

chciałbym uzyskać takie dane:

dla 21 tygodnia danego roku suma dni od data_wprowadzenia do ostatni dzień 21 tygodnia

dla przykładu weźmy data_wprowadzenia = 2012-05-18

  1. SELECT sum(Datediff((subdate(now(), INTERVAL weekday(now())+1 DAY)) ,data_wprowadzenia)) AS ilosc_dni FROM dane WHERE status<>T AND week(data_wprowadzenia)<=21 LIMIT 1

wynikiem jest 9

i ten wynik jest poprawny, natomiast wpisując week(data_wprowadzenia)<=20 tez podaje mi 9 a powinien 2
przy 20 tygoniu powinien sie raport cofnąć o 1 tydzien i tu nie bardzo wiem jak to zrobić

Ma ktoś jakiś pomysł?

Go to the top of the page
+Quote Post
Firebright
post
Post #2





Grupa: Zarejestrowani
Postów: 18
Pomógł: 3
Dołączył: 19.01.2011

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


Strasznie zagmatwałeś problem, ale spróbuje pomóc.
Aby obliczyć liczbę dni od wprowadzenia do końca bieżącego tygodnia (na podstawie aktualnej daty) możesz wykorzystać zapytanie:
  1. SELECT DATEDIFF(ADDDATE(NOW(), INTERVAL 6-WEEKDAY(NOW()) DAY), data_wprowadzenia)
  2. FROM dane;

Liczba dni zostanie obliczona dla wszystkich wierszy w tabeli.

Aby obliczyć liczbę dni od wprowadzenia do końca zadanego tygodnia (w przykładzie tydzień 22) spróbuj:
  1. SELECT DATEDIFF(ADDDATE(DATE_FORMAT(NOW(), '%Y-01-01'), INTERVAL 22*7 DAY), data_wprowadzenia)
  2. FROM dane;

Tutaj także liczba dni zostanie obliczona dla każdego wiersza.

Mam nadzieję, że te dwa zapytania pozwolą Ci rozwiązać Twój problem (IMG:style_emoticons/default/wink.gif) .

Ten post edytował Firebright 28.05.2012, 19:37:55
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: 22.08.2025 - 15:06