2009-10-21 9 views
0

Je suis en train de faire ce qui suit:manipulation DateTime dans SQL Server EXECUTE sp_executesql

EXECUTE sp_executesql 
    N'SELECT TOP 10 * FROM dbo.Items WHERE DateCreated BETWEEN @start AND @end' 
    , N'@start DATETIME, @end DATETIME' 
    , @start = '20091001' 
    , @end = GETDATE() --problem is caused by this line 

Error: 
Msg 102, Level 15, State 1, Line 5 
Incorrect syntax near ')'. 

J'ai besoin de manipuler la date et le transmettre en tant que paramètre, soit le lundi de la semaine, le mois de l'année, etc. Est-ce même possible?

Merci.

Répondre

5

Vous devez déclarer une variable, je pense qu'il a des problèmes avec l'aide d'une fonction:

DECLARE @endDate as datetime 
SET @endDate = GETDATE() 
EXECUTE sp_executesql 
    N'SELECT TOP 10 * FROM dbo.Items WHERE DateCreated BETWEEN @start AND @end' 
    , N'@start DATETIME, @end DATETIME' 
    , @start = '20091001' 
    , @end = @endDate 
+0

Excellent! Merci. –

Questions connexes