трябва да разгледате наличните формати за дата и час в SQL Server:http:// msdn.microsoft.com/en-us/library/ms187928.aspx
yyyy-mm-dd hh:mi
е това, което трябва да използвате:
опитайте:
SELECT
*
FROM Records
WHERE DateCreated>='2007-02-30 10:32' AND DateCreated<='2008-06-21 14:19'
в горната заявка низовете ще бъдат преобразувани в тип данни datetime, ако DateCreated
е колона за дата и час. и заявката ще работи.
можете да създадете локални променливи от тип данни datetime и да използвате заявка като:
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]
Харесва ми да използвам <, <=,>=или>, защото позволява повече гъвкавост от BETWEEN
и ви принуждава да мислите дали да включите крайни точки или не.
Друго нещо, което трябва да имате предвид, е получаването на всички данни от цял ден:
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