Pobierz rekordy z bieżącego miesiąca

Pobierz rekordy z bieżącego miesiąca
MP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

Witam,

Chciałbym utworzyć zapytanie które będzie wyciągało mi dane z bazy które mają datę utworzenia w bieżącym miesiącu. Naturalnie chodzi o uniwersalne zapytanie którego co miesiąc nie będę musiał aktualizować i zmieniać zakres dat ręcznie.

''2020-10-22 00:00:00.000'' - w takim formacie aktualnie jest przechowywana data w mojej bazie

Jak może wyglądać przykładowa składnia takiego zapytania.

Dzięki za pomoc

DR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1135
UglyMan
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2206
4
Dregorio napisał(a):

https://www.db-fiddle.com/f/3A16NpyhvCZhpvahQjGo9W/0 cos takiego?

Tylko że on wyciągnie dane ze wszystkich październików w całej bazie. Jeszcze trzeba rok porównać.

DR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1135
1

@UglyMan: tak, ale ogólny schemat kolega ma, więc powinien sobie poradzić dalej :)

MP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

Zmodyfikowałem , dodałem jeszcze rok i działa na waszym przykładzie.

Kopiuj
SELECT * FROM test as t where MONTH(t.d) = MONTH(NOW())
and YEAR(t.d) = YEAR(NOW());

... ale u mnie nie działa :) . Konkretnie na mojej bazie. Kod niżej

Kopiuj
select * from WIDOK_DOKUMENTMAGAZYNOWY wd;

where MONTH(wd.DataWystawienia)= MONTH(now())
and YEAR(wd.DataWystawienia)= YEAR(now())

Kod błędu

Kopiuj
Msg 156, Level 15, State 1, Line 3
Incorrect syntax near the keyword 'where'.
UglyMan
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2206
1

A jak to baza ?

MP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

Microsoft Sql Server a wyciągam dane za pomocą Server Managment Studio

UglyMan
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2206
2

Zmień now() na GetDate().

MP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0
Kopiuj
select * from WIDOK_DOKUMENTMAGAZYNOWY wd

where month(wd.DataWystawienia)= MONTH(GETDATE())
and YEAR (wd.DataWystawienia) = YEAR(GETDATE())

Dokładnie tak jak mówisz. Dziękuje panowie za pomoc. Hobbystycznie zaczynam przygodę z tematem i przy okazji ułatwiam sobie pracę

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3902
0

Zawsze to możesz ubrać w zakres dat od-do

Kopiuj
--dla wersji >= 2012
WHERE wd.DataWystawienia between DATEADD(DAY,1,EOMONTH(getdate(),-1)) and EOMONTH(getdate())

-- wersje wczesniejsze
WHERE wd.DataWystawienia between DATEADD(mm, DATEDIFF(mm, 0, getdate()), 0)  and  DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+1,0))

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.