2010-03-17 11 views

cevap

14

SQL Server mevcut tarih saat formatları bakmak gerekir: http://msdn.microsoft.com/en-us/library/ms187928.aspx

yyyy-mm-dd hh:mi kullanmanız gereken budur:

deneyin:

SELECT 
    * 
    FROM Records 
    WHERE DateCreated>='2007-02-30 10:32' AND DateCreated<='2008-06-21 14:19' 
Yukarıdaki sorguda

dizeleri d'ye dönüştürülecektir DateCreated, bir datetime sütunuysa, zaman veri türü. ve sorgu çalışacaktır.

Eğer datetime veri türü lokal değişkenler oluşturmak ve benzeri bir sorgu kullanabilirsiniz: Ben < gibi kullanarak

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] 

, < => = veya> daha BETWEEN daha esneklik ve güçlerini size sağlar çünkü Uç noktaları dahil etmeyi düşünün ya da etmeyin.

tam gün tüm verileri elde ettiğini Başka bir şey düşünmek: Yardım için

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 
5

bu deneyin:

SELECT 
    * 
FROM 
    Records 
WHERE 
    DateCreated BETWEEN @Date1 AND @Date2 
+0

teşekkür sitesinin, ama nasıl tarih ve saat yazılır? date: 30/02/2007, time: 10:32 ve date: 21/06/2008, time: 14:19 – Gold

+0

Yukarıdaki örnekte @ Date1 ve @ Date2 değişkenleri, datetime tipinde tipidir. Bu, atayabileceğiniz anlamına gelir. bunlara şu tarih ve saat: 'DECLARE @ Tarih1 tarihsaat SET @ Tarih1 = '2010-03-18 10: 52' –