2010-03-17 73 views

Trả lời

14

bạn nên nhìn vào các định dạng thời gian ngày có sẵn trong SQL Server: http://msdn.microsoft.com/en-us/library/ms187928.aspx

yyyy-mm-dd hh:mi là những gì bạn nên sử dụng:

thử:

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

trong truy vấn ở trên, các chuỗi sẽ được chuyển thành d loại dữ liệu tại thời điểm nếu DateCreated là cột ngày giờ. và truy vấn sẽ hoạt động.

bạn có thể tạo các biến cục bộ của kiểu dữ liệu datetime và sử dụng một truy vấn như:

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] 

Tôi thích sử dụng <, < =,> =, hoặc> vì nó cho phép linh hoạt hơn BETWEEN và các lực lượng bạn suy nghĩ về việc bao gồm điểm cuối hay không.

Một điều cần xem xét là nhận được tất cả dữ liệu từ một ngày trọn vẹn:

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

Hãy thử điều này:

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

cảm ơn đối với sự giúp đỡ, nhưng làm thế nào để viết ngày & thời gian? Ngày: 30/02/2007, thời gian: 10:32 và ngày: 21/06/2008, thời gian: 14:19 – Gold

+0

Trong ví dụ trên, các biến @ Date1 và @ Date2 có kiểu datetime Điều này có nghĩa là bạn có thể gán ngày và giờ cho họ như thế này: 'DECLARE @ Date1 datetime SET @ Date1 = '2010-03-18 10: 52'' –

Các vấn đề liên quan