Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zapytanie o dwie daty
b2n
post
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 25.08.2004

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


WItam,
Rozchodzi sie o system newsów i tak w tabeli mam dwa pola 1. data 2. waznosc
i teraz tak chodzi o to aby wysciągnąc wszystkie rekordy które

a) w przypadku jesli pole "waznosc" jest 0000-00-00 to np. 21 dni od pola "data"
cool.gif jeśli podane jest "waznosc" to ma wyciagac do daty w tym polu podanym

ponizej mam takie dwa przykłady:

ten działa oczywiscie ale tylko w przypadku gdzie nie uwzgledniamy "waznosc"
  1. SELECT *
  2. FROM news WHERE DATA >= DATE_SUB(NOW(), INTERVAL 21 DAY) AND serwis = 0 ORDER BY DATA DESC, id DESC LIMIT 0, 10


no a takie napisałem w przypadku gdzie miało by uwzgledniać "waznosc" to troszke edycja tego zapytania wyżej.
  1. SELECT *
  2. FROM news WHERE waznosc<=NOW() OR DATA >= DATE_SUB(NOW(), INTERVAL 14 DAY) AND serwis = 0 ORDER BY DATA DESC, id DESC LIMIT 0, 10


mam nadzieje że jasno nakreśliłem ;-) bede wdzieczny za pomoc

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
nospor
post
Post #2





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




sklecilem cos takiego na swojej tabeli i dziala:
  1. SELECT *
  2. FROM DATY WHERE (waznosc IS NULL AND DATA >= DATE_SUB(NOW(), INTERVAL 21 DAY)) OR waznosc >= NOW();
Wstaw se moj warunek do siebie i powinno dzialac


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
DoIY
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 21.08.2005

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


Ja mam podobne pytanie więc nie będe zakładał nowego topicu :]
Potrzebuje wyświetlić wszystkie rekordy kiedy: date > XXXX-XX-XX TT:TT:TT.
Go to the top of the page
+Quote Post
b2n
post
Post #4





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 25.08.2004

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


O ile dobrze zrozumiałem Twoje pytanie

  1. SELECT *
  2. FROM baza WHERE data>=NOW() .....


Jeśli dobrze zrozumiałem
Go to the top of the page
+Quote Post
DoIY
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 21.08.2005

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


Nie obecna data tylko data podana w formacie jak powyzej :]
Dodam, że
  1. <?php
  2. //Zapytanie
  3. $query = "SELECT * FROM mos_akocomment ORDER BY date DESC WHERE date > 2005-09-19 15:43:53";
  4. $wynik = mysql_query ($query) or die ("Zapytanie zakończone niepowodzeniem");
  5. ?>

Zwraca die(); .

Ten post edytował DoIY 20.09.2005, 22:29:41
Go to the top of the page
+Quote Post
mhs
post
Post #6





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

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


@DoIY

Pomyliles kolejnosc: ORDER BY i WHERE - odsylam do http://dev.mysql.com/doc/mysql/en/select.html

prawdopodobnie Twoje pytanie bedzie wygladac tak:
  1. SELECT *
  2. FROM mos_akocomment WHERE date > '2005-09-19 15:43:53' ORDER BY date DESC
Go to the top of the page
+Quote Post
DoIY
post
Post #7





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 21.08.2005

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


Wielkie dzięki... Działa...
Go to the top of the page
+Quote Post
neates
post
Post #8





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 2.09.2005
Skąd: znienacka

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


Witam!

Ja mam pytanie w związku z wyświetleniem daty na stronie. Tzn wysyłam posta, który zapisuje w tabeli typu TIME godzinę w formacie HH:MM:SS. Problem tkwi w tym, że nie mam pojęcia, jak teraz sformatować daną datę, by na stronie wyświetliła się jako tylko HH:MM (tzn np 10:30). Za pomoc będę bardzo wdzięczny.

Pozdrawiam,
neates


--------------------
Jestem niczym maleńki prozaiczny ziemniak w kępie psychodelicznych chryzantem
Go to the top of the page
+Quote Post
mhs
post
Post #9





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

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


w php:
  1. <?php
  2. echo date('H:i', mktime(23, 12, 12));
  3. ?>


lub co zalecane zadanie to zlecic mysql'owi:
  1. SELECT DATE_FORMAT('2005-01-02 23:11:01', '%H:%i');
Go to the top of the page
+Quote Post
neates
post
Post #10





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 2.09.2005
Skąd: znienacka

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


Dzięki za pomoc.

Zastosowałem ten pierwszy sposób, jaki podałeś i okazało się, że teraz czas wyświetla się tak, że HH jest pobierana z bazy, natomiast MM jest pobierane z czasu systemowego biggrin.gif Zaraz postaram się 2 sposób zastosować tongue.gif


--------------------
Jestem niczym maleńki prozaiczny ziemniak w kępie psychodelicznych chryzantem
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 07:29