du bør se på de dato- og tidsformater, der er tilgængelige i SQL Server:https:// 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>example@sqldat.com AND DateCreated<example@sqldat.com
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>example@sqldat.com AND DateCreated<@EndDate+1