Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL] połączenie BETWEEN i LIKE
agataperz
post
Post #1





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 24.03.2009
Skąd: Hamburg DE

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


Witam,

nie wiem jak utworzyć zapytanie z wyrażeniem BETWEEN i LIKE możecie mnie jakoś naprowadzić?

  1. SELECT * FROM ehi WHERE DATA BETWEEN LIKE '2011-07%' AND LIKE '2011-06%' ORDER BY DATA ASC
Go to the top of the page
+Quote Post
mat-bi
post
Post #2





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

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


Ech, gdybyś miał normalną kolumnę, przechowującą datę w odpowiednim formacie, nie byłoby takich problemów.
Go to the top of the page
+Quote Post
bastard13
post
Post #3





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Nie połączysz. Możesz spróbować rzutować tą swoja kolumnę na date http://dev.mysql.com/doc/refman/5.0/en/cas...l#function_cast
Go to the top of the page
+Quote Post
agataperz
post
Post #4





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 24.03.2009
Skąd: Hamburg DE

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


tak też myślałam - no to będę musiała zastosować

  1. DATA > curdate( ) - INTERVAL 60 DAY


niestety nie zawsze wyświetli mi 2 ostatnie miesiące (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
wookieb
post
Post #5





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Bo to się cofa o równo 60 dni a nie 2 pełne miesiące kalendarzowe. Użyj takiej formy jaką miałaś tylko zamień pole w bazie na typ DATE.
Go to the top of the page
+Quote Post
agataperz
post
Post #6





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 24.03.2009
Skąd: Hamburg DE

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


W SQL typ kolumny mam DATE i to zapytanie nie działa zwraca mi komunikat
  1. #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 'LIKE '2011-07%' AND LIKE '2011-06%' ORDER BY DATA ASC LIMIT 0, 30' at line 1


Ten post edytował agataperz 1.08.2011, 10:04:51
Go to the top of the page
+Quote Post
wookieb
post
Post #7





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




  1. pole BETWEEN '2011-06-01' AND '2011-07-31'
Go to the top of the page
+Quote Post
agataperz
post
Post #8





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 24.03.2009
Skąd: Hamburg DE

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


niestety nie mogę użyć na stałe dnia.
Jeżeli zrobie na stałe:
  1. ".$rok."-".$mc."-31

i miesiac bedzie luty to mi wywali błąd
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




  1. WHERE DATE_FORMAT(pole,'%Y-%m') BETWEEN '2011-06' AND '2011-07'
Go to the top of the page
+Quote Post
bastard13
post
Post #10





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Użyj http://dev.mysql.com/doc/refman/5.5/en/dat...nction_last-day
Go to the top of the page
+Quote Post
wookieb
post
Post #11





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A co za problem wyliczyć ostatni dzień miesiąca w PHP? Nawet w mysql da się to uczynić za pomocą INTERVAL.

  1. date('Y-m-d', mktime(0,0,0, 8, 0)); // ostatni dzień miesiąca "lipiec"
Go to the top of the page
+Quote Post
agataperz
post
Post #12





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 24.03.2009
Skąd: Hamburg DE

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


Upss faktycznie.

Dzięki chłopaki.
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: 17.09.2025 - 14:13