J'ai un rapport SSRS qui appelle une procédure stockée. Voici la procédure:J'essaie de filtrer un ensemble de données SQL par date d'aujourd'hui dans SSRS en utilisant le Générateur de rapports
USE [TSC-Telaid]
GO
/****** Object: StoredProcedure [dbo].[TW_spRPTAllReceiverInventory] Script Date: 10/4/2017 2:06:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[TW_spRPTAllReceiverInventory]
@SiteId varchar(50),
@ReceiverId int
AS
BEGIN
DECLARE @SQL varchar(8000), @Index int, @Value varchar(500), @Source varchar(100)
SELECT @Index = CHARINDEX('Initial Catalog=', ConnectionString) + 16, @Value = ConnectionString
FROM CustomerSetting
WHERE SiteId = @SiteId
SET @Source = '[' + SUBSTRING(@Value , @Index, CHARINDEX(';', @Value, @Index) - @Index) + ']'
SET @SQL = 'SELECT R.SiteId, L.*
FROM ' + @Source + '.[dbo].[vwReceiver] R JOIN ' +
@Source + '.[dbo].[vwInventory] L ON R.ReceiverId = L.ReceiverId
WHERE R.ReceiverId = ' + CAST(@ReceiverId as varchar)
EXEC(@SQL)
END
je passe @SiteId & @ReceiverID sur l'ensemble de données. L'un des champs que je reçois est DateReceived. Je veux filtrer l'ensemble de données pour qu'il ne renvoie que DateReceived = today() mais cela ne fonctionne pas.
J'ai aussi essayé de placer l'expression du filtre à DateReceived ENTRE DateAdd ("d", - 1, Aujourd'hui()) & DateAdd ("d", 1, Aujourd'hui())
Je ne suis pas nouveau sur SQL mais relativement nouveau sur SSRS.
Cette syntaxe n'est pas valide. Supprimez les guillemets autour de l'identificateur de partie de date (''' d''') et remplacez 'today()' par 'getdate()'. Sinon, vous pouvez faire quelque chose comme '... où DateReceived> = cast (getdate() comme date)'. Cela vous obtiendra tout à partir de la date actuelle à minuit et après. – Xedni
@Xedri l'OP utilise les fonctions SSRS, donc 'today' est valide. @drew jackson. Votre colonne 'DateReceived' renvoie-t-elle une date ou une heure? –
Il retourne un datetime –