![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Nieautoryzowani Postów: 34 Pomógł: 1 Dołączył: 22.06.2009 Skąd: Koszalin/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Mam tabelę z kolumną kup_data w której, jak sama nazwa sugeruje, są daty w formacie 0000-00-00. Podczas SELECTa chciałbym wybrać te rekordy, które były wprowadzone bieżącego miesiąca (od pierwszego do obecnej daty, rekordy nowsze niż obecna data nie istnieją więc nie trzeba dawać górnej granicy).
Napisałem taki warunek:
On działa, ale wg. mnie jest nieelegancki. Da się to zrobić jakoś sprytniej? Timestamp nie wchodzi w grę. Ten post edytował lorak110786 23.02.2010, 20:24:36 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 781 Pomógł: 256 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Nieautoryzowani Postów: 34 Pomógł: 1 Dołączył: 22.06.2009 Skąd: Koszalin/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję, faktycznie dużo sensowniej:)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
A to może wygląda potwornie, ale za to pozwala skorzystać z indeksu.
Kod WHERE date BETWEEN ((EXTRACT(YEAR_MONTH FROM CURDATE())*100)+1) AND DATE((EXTRACT(YEAR_MONTH FROM CURDATE()+ INTERVAL 1 MONTH)*100)+1) - INTERVAL 1 DAY; oczywiście jak nie potrzeba górnej granicy, to można się ograniczyć do: Kod WHERE date >=((EXTRACT(YEAR_MONTH FROM CURDATE())*100)+1);
Ten post edytował Mchl 23.02.2010, 21:13:36 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 2.06.2025 - 15:45 |