![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 7 Dołączył: 10.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Gdyby okres rozliczeniowy zaczynał się pierwszego, a kończył ostatniego dnia miesiąca, mógłbym pobrać rekordy następująco:
jednak okres rozpoczyna się 17 dnia miesiąca, a kończy 18 dnia kolejnego miesiąca. Jak w takim przypadku pobrać rekordy tylko przy pomocy SQL? Z wykorzystaniem PHP to przychodzi mi do głowy operacje na wartościach zwracanych przez date(), a następnie:
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Możesz użyć BETWEEN lub >= oraz <=.
17. aktualnego miesiąca i 18. miesiąca następnego:
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 7 Dołączył: 10.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Sprawa się skomplikowała o tyle, że okres rozliczeniowy trwa 30 dni czyli np. rozpoczyna się od:
2017-09-18 do 2017-10-17 2017-10-18 do 2017-11-16 2017-11-17 do 2017-12-16 itd. W skrypcie chciałbym codziennie pobierać wydarzenia z aktualnego okresu rozliczeniowego czyli dla dnia dzisiejszego byłby to od 2017-10-18 do 2017-11-16 gdyż jest wprowadzony limit zdarzeń w okresie rozliczeniowym. Czy to możliwe wyłącznie przy pomocy SQL biorąc pod uwagę strukturę tabeli jaką przedstawiłem w pierwszy wpisie? Ewentualnie proszę o jakieś sugestie bo na razie mam "mętlik" w kwestii tych okresów rozliczeniowych, a myślę, że to problem z którym często można się spotkać więc Wasza pomoc może mi sprawę rozmętlikować ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
no to jaki probblem?
Robisz INTERVAL 30 DAYS |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 7 Dołączył: 10.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Problem w tym że nie wiem jak w skrypcie skonstruować zapytanie które będzie pobierało dane w zakresie okresu rozliczeniowego gdy data rozpoczęcia okresu i zakończenia to może być za każdym razem inny dzień miesiąca. Stała jest tylko liczba dni (30) oraz data rozpoczęcia pierwszego okresu 2017-09-17
2017-10-18 do 2017-11-16 (drugi okres) 2017-11-17 do 2017-12-16 (trzeci okres) ... |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 24 Dołączył: 12.05.2013 Skąd: Hamburg Ostrzeżenie: (0%) ![]() ![]() |
Chyba nie do końca zrozumiałem o co Ci chodzi.
Kiedy rozpoczyna się pierwszy okres rozliczeniowy? 2017-09-17 czy 2017-09-18? Jeśli 2017-09-17 i ta data to pierwszy dzień okresu rozliczeniowego a 2017-09-18 to drugi, to 30-sty dzień to 2017-10-16. Czyli drugi okres rozpoczyna się dzień po, czyli 2017-10-17 i trwa do 2017-11-15. P1: 2017-09-17 do 2017-10-16 P2: 2017-10-17 do 2017-11-15 P3: 2017-11-16 do 2017-12-15 Tak to ma być? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.08.2025 - 22:19 |