du bør se på de dato- og tidsformater, der er tilgængelige i SQL Server:http:// msdn.microsoft.com/en-us/library/ms187928.aspx
yyyy-mm-dd hh:mi
er hvad du skal bruge:
prøv:
SELECT
*
FROM Records
WHERE DateCreated>='2007-02-30 10:32' AND DateCreated<='2008-06-21 14:19'
i ovenstående forespørgsel vil strengene blive konverteret til datetime datatype, hvis DateCreated
er en dato-tid-kolonne. og forespørgslen vil virke.
du kan oprette lokale variabler af datetime-datatypen og bruge en forespørgsel 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]
Jeg kan godt lide at bruge <, <=,>=eller>, fordi det giver mere fleksibilitet end BETWEEN
og tvinger dig til at tænke på at inkludere endepunkter eller ej.
En anden ting at overveje er at få alle data fra 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