Witam, potrzebuję zapytać moją bazę o to ,aby pokazał mi wiersze z aktualnego miesiąca.
select * from prequest p
i teraz warunek
where p.data_umowy=aktualny miesiąc
próbowałem MONTH(NOW), ale to niepoprawne rozwiązanie znalezione w necie
Witam, potrzebuję zapytać moją bazę o to ,aby pokazał mi wiersze z aktualnego miesiąca.
select * from prequest p
i teraz warunek
where p.data_umowy=aktualny miesiąc
próbowałem MONTH(NOW), ale to niepoprawne rozwiązanie znalezione w necie
W jakim formacie masz date? Może to timestamp?
Dregorio napisał(a):
W jakim formacie masz date? Może to timestamp?
select * from prequest p where MONTH(p.data_umowy) = MONTH(NOW());
Jaka baza?
Dla SQL Server:
select * from prequest p where MONTH(p.data_umowy) = MONTH(GETDATE());
Ps. Dodał bym sprawdzanie roku jeszcze bo w innym wypadku zamówienia z Listopada 2018 roku (i wcześniejszych) także będą wyświetlone.
Można zrobić jakąś faktoryzację, która wyliczy zakres dat i mieć zapytanie w stylu:
with period as (
select
cast(getdate()-day(getdate())+1 as date) start_date,
getdate() as end_date
)
select * from prequest r, period p where r.data_umowy BETWEEN p.start_date and p.end_date;
Nie wiem czy mogą być requesty z przyszłości w danym miesiącu, więc może być potrzeba modyfikacji wyliczania end_date.