Мне нужно искать между датами и временем.Поиск между датами и временем в SQL Server 2008
Например, между date: 30/02/2007, time: 10:32
и date: 21/06/2008, time: 14:19
Самый простой запрос для этого?
Заранее благодарен.
Мне нужно искать между датами и временем.Поиск между датами и временем в SQL Server 2008
Например, между date: 30/02/2007, time: 10:32
и date: 21/06/2008, time: 14:19
Самый простой запрос для этого?
Заранее благодарен.
вы должны смотреть на форматы времени даты, доступные в 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'
в вышеуказанном запросе строки будут co nverted to 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
Попробуйте это:
SELECT
*
FROM
Records
WHERE
DateCreated BETWEEN @Date1 AND @Date2
благодарственное за помощью, но как писать дату & время? Дата: 30/02/2007, время: 10:32 и дата: 21/06/2008, время: 14:19 – Gold
В приведенном выше примере переменные @ Date1 и @ Date2 имеют тип datetime Это означает, что вы можете назначить дата и время для них вот так: 'DECLARE @ Date1 datetime SET @ Date1 = '2010-03-18 10: 52'' –