vous devriez regarder les formats de date et d'heure disponibles dans SQL Server :http:// msdn.microsoft.com/en-us/library/ms187928.aspx
yyyy-mm-dd hh:mi
est ce que vous devez utiliser :
essayez :
SELECT
*
FROM Records
WHERE DateCreated>='2007-02-30 10:32' AND DateCreated<='2008-06-21 14:19'
dans la requête ci-dessus, les chaînes seront converties en type de données datetime si DateCreated
est une colonne datetime. et la requête fonctionnera.
vous pouvez créer des variables locales de type datetime et utiliser une requête comme :
DECLARE @StartDate datetime, @EndDate datetime
SELECT @StartDate='2007-02-30 10:32', @EndDate='2008-06-21 14:19'
SELECT
*
FROM Records
WHERE DateCreated>[email protected] AND DateCreated<[email protected]
J'aime utiliser <, <=,>=ou> car cela permet plus de flexibilité que BETWEEN
et vous oblige à penser à inclure ou non des points de terminaison.
Une autre chose à considérer est d'obtenir toutes les données d'une journée complète :
DECLARE @StartDate datetime, @EndDate datetime
--set the days you want
SELECT @StartDate='2007-02-30 10:32', @EndDate='2008-06-21 14:19'
--remove the time
SELECT @StartDate=DATEADD(day,DATEDIFF(day,0,@StartDate),0), @EndDate=DATEADD(day,DATEDIFF(day,0,@EndDate),0)
--get everything on '2007-02-30' up to the end of the day on '2008-06-21'
SELECT
*
FROM Records
WHERE DateCreated>[email protected] AND DateCreated<@EndDate+1