Witam,
mam takie pytanie - mam procedurkę i do niej przesyłam datę od i datę do.
W mojej aplikacji daty się wybiera za pomocą date pickera, który nie uwzględnia dni (miesiąc/rok), po skonwertowaniu wrzuca mi 1 jako dzień.
Teraz np. biorę zakres 01/2020 - 06/2020, więc zależy mi żeby brało rekordy z datą 01/01/2020 - 30/06/2020, natomiast bierze mi rekordy z zakresu 01/01/2020 - 01/06/2020.
Miałem metodę w C#, która do drugiej daty wstawiała mi ostatni dzień miesiąca i lokalnie mi to działało, ale jak wystawiłem apkę to wywala error 500.
Nie wiem jaki jest tego powód, ale w takim wypadku próbuję wziąć ten zakres i chciałbym, żeby w bazie porównywało mi te daty ignorując dzień. Jak mogę takie coś osiągnąć?
Procedurka:
ALTER PROCEDURE [dbo].[TestProcedure]
@App varchar(10),
@DateFrom Date,
@DateTo Date
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT COUNT(DISTINCT UserId) NewUsers, Shop
FROM view_TestView
WHERE App = @App
AND Date >= @DateFrom AND Date <= @DateTo <-- tutaj próbowałem formatowania, ale nie potrafię tego zrobić ignorując dzień, przez co dalej nie bierze mi z dat pełnego zakresu
GROUP BY Shop
ORDER BY COUNT(DISTINCT UserId) DESC
END