du bör titta på datum- och tidsformaten som är tillgängliga i SQL Server:http:// msdn.microsoft.com/en-us/library/ms187928.aspx
yyyy-mm-dd hh:mi
är vad du ska använda:
försök:
SELECT
*
FROM Records
WHERE DateCreated>='2007-02-30 10:32' AND DateCreated<='2008-06-21 14:19'
i ovanstående fråga kommer strängarna att konverteras till datetime-datatyp om DateCreated
är en kolumn för datum och tid. och frågan kommer att fungera.
du kan skapa lokala variabler av datetime-datatyp och använda en fråga som:
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]
Jag gillar att använda <, <=,>=eller> eftersom det ger mer flexibilitet än BETWEEN
och tvingar dig att tänka på att inkludera slutpunkter eller inte.
En annan sak att tänka på är att få all data från en hel dag:
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