u moet kijken naar de datum-tijdnotaties die beschikbaar zijn in SQL Server:http:// msdn.microsoft.com/en-us/library/ms187928.aspx
yyyy-mm-dd hh:mi
is wat je zou moeten gebruiken:
probeer:
SELECT
*
FROM Records
WHERE DateCreated>='2007-02-30 10:32' AND DateCreated<='2008-06-21 14:19'
in de bovenstaande query worden de tekenreeksen geconverteerd naar het datatype datetime als DateCreated
is een datetime-kolom. en de zoekopdracht zal werken.
u kunt lokale variabelen van het datatype datetime maken en een query gebruiken zoals:
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]
Ik gebruik graag <, <=,>=of> omdat het meer flexibiliteit biedt dan BETWEEN
en dwingt je na te denken over het wel of niet opnemen van eindpunten.
Een ander ding om te overwegen is het verkrijgen van alle gegevens van een volledige 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