Pobierz rekordy z bieżącego miesiąca

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 0000.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

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ć.

1

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

0

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

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

select * from WIDOK_DOKUMENTMAGAZYNOWY wd;

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

Kod błędu

Msg 156, Level 15, State 1, Line 3
Incorrect syntax near the keyword 'where'.
1

A jak to baza ?

0

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

2

Zmień now() na GetDate().

0
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ę

0

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

--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))

1 użytkowników online, w tym zalogowanych: 0, gości: 1