我需要在日期和時間之間搜索。在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'
在上面的查詢中字符串將被轉換爲d如果DateCreated
是日期時間列,則爲atetime數據類型。和查詢將工作。
您可以創建日期時間數據類型的局部變量和使用查詢,如:
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
感謝對幫助,但如何寫的日期和時間? date:30/02/2007,time:10:32 and date:21/06/2008,time:14:19 – Gold 2010-03-17 14:15:00
在上面的例子中,@ Date1和@ Date2變量的類型是datetime 這意味着你可以賦值日期和時間像這樣: 'DECLARE @ Date1 datetime SET @ Date1 ='2010-03-18 10:52'' – 2010-03-18 06:58:03