0
ストアドプロシージャを呼び出すSSRSレポートがあります。レポートビルダーを使用してSSRSで今日の日付までにSQLデータセットをフィルタリングしようとしています
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
私はデータセットに@SiteId & @ReceiverIDに渡します。ここでの手順です。私が返すフィールドの1つはDateReceivedです。 DateReceived = today()だけを返すようにデータセットをフィルタリングしたいが、それは機能していない。私はいないよ& DateAdd関数( "D"、1、今日())
-
私はまた、DateAdd関数BETWEEN DateReceivedにフィルタ式(1、今日() "d" を、)を設定しようとしましたSQLは新しくSSRSはかなり新しいです。
これは有効な構文ではありません。日付部分の識別子( ''' d''')の前後の引用符を削除し、 'today()'を 'getdate()'に変更してください。あるいは、あなたは 'どこでDateReceived> =キャスト(getdate()として日付)'のようなことをすることができます。それは現在の日付から真夜中のすべてにあなたを得るでしょう。 – Xedni
@Xedri OPはSSRS関数を使用しているので、 'today'が有効です。 @drew jacksonあなたの 'DateReceived'カラムは日付または日付の時刻を返しますか? –
それはdatetimeを返します –