Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z CURDATE?
deha21
post 4.06.2012, 11:07:37
Post #1





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Potrzebuję wyciągnąć z bazy wpisy, które w polu DATE mają datę większą bądź równą dwóm miesiącom wstecz. Logicznie zapisałbym to tak:
  1. SELECT * FROM tabela WHERE date>=CURDATE()-60 AND active='1' //bo jeszcze potrzebuję wyciągnąć widoczne wpisy

Próbowałem też date BETWEEN. I najdziwniejsze jest to, że jak sobie wyciągam dane z phpMyAdmin to działa ale jak robię to samo zapytanie na stronie to nie działa. Dodam jeszcze, że datę mam w formacie Y-m-d G:i. Co robię źle?

Ten post edytował deha21 4.06.2012, 11:13:16


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Crozin
post 4.06.2012, 11:31:10
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Data nie jest liczbą, więc odejmowanie od niej innej liczby do zbyt logicznych nie należy. wink.gif Słowo klucz: INTERVAL.

Ten post edytował Crozin 4.06.2012, 11:31:53
Go to the top of the page
+Quote Post
Sephirus
post 4.06.2012, 12:53:59
Post #3





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Wiem, że to nie wychowawze ale aż się prosi napisać smile.gif

Tak czy owak "pomógł" należy się Crozinowi tongue.gif

  1. SELECT * FROM tabela WHERE date >= NOW() - INTERVAL 60 DAY AND active='1'


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
deha21
post 4.06.2012, 17:36:57
Post #4





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Hmm to dziwne... Dlaczego więc działa to gdy piszę zapytanie w phpMyAdminie?

Tak czy inaczej dzięki. Sprawdzę jak tylko będę miał chwilę, żeby wrócić do kodu.


--------------------
Go to the top of the page
+Quote Post
japolak
post 4.06.2012, 18:22:20
Post #5





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 11.03.2007
Skąd: Łódzkie

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


jak coś to tu masz ładnie to wyjaśnione Funkcje daty i czasu mysql


--------------------
moje projekty:

www.hackwars.pl
- hacking , webdesign itp
www.kosmosnews.pl - Wszechświat bez granic
Go to the top of the page
+Quote Post
deha21
post 5.06.2012, 10:18:47
Post #6





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Dzięki jeszcze raz. Nie chcę zakładać nowego tematu ale postanowiłem jednak zmienić zasadę pobierania wpisów. Chcę teraz pobrać wpisy, które są tylko z aktualnego miesiąca. Jak to zrobić? WHERE date=MONTH(NOW()) nie działa wink.gif


--------------------
Go to the top of the page
+Quote Post
Pilsener
post 5.06.2012, 12:05:49
Post #7





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Jak zrobić? Myślenie włączyć i korzystać z dokumentacji:
http://dev.mysql.com/doc/refman/5.5/en/dat...-functions.html
Czy w polu "date" masz miesiąc czy całą datę? Musisz wyciągnąć z pola "date" by go porównać z biężacym miesiącem.

Rób sobie coś w stylu:
  1. SELECT month(date), month(now()), month(curdate()), //?


To się nauczysz wink.gif
Go to the top of the page
+Quote Post
Sephirus
post 5.06.2012, 13:22:03
Post #8





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Pilsener zmusił Cię do myślenia i ma rację wink.gif Ale podpowiem jedynie, że jeśli chcesz dosłownie aktualny miesiąc to nie wystarczy wybrac daty gdzie miesiąc równa się czerwiec - ale te w których miesiąc to czerwiec a rok 2012.... wink.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
deha21
post 5.06.2012, 14:02:14
Post #9





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Cytat(Sephirus @ 5.06.2012, 14:22:03 ) *
Pilsener zmusił Cię do myślenia i ma rację wink.gif Ale podpowiem jedynie, że jeśli chcesz dosłownie aktualny miesiąc to nie wystarczy wybrac daty gdzie miesiąc równa się czerwiec - ale te w których miesiąc to czerwiec a rok 2012.... wink.gif

Słuszna sugestia wink.gif A pewnie bym to przeoczył i zauważył dopiero za jakiś czas wink.gif

Dla potomnych wink.gif
  1. SELECT * FROM tabelka WHERE MONTH(date)=MONTH(CURDATE()) AND YEAR(date)=YEAR(CURDATE())


Ten post edytował deha21 5.06.2012, 14:08:58


--------------------
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 Wersja Lo-Fi Aktualny czas: 24.06.2025 - 14:52