2012-03-10 31 views
0

我想2個日期沒有得到兩個日期

之間。這裏得到行之間的記錄是查詢:

select 
    distinct Convert(varchar(09), [DateTime], 103) 
from 
    StudentAttendance_FK 
where 
    LecturerID = 5033 and 
    CourseID = 1004 and 
    SubjectID = 120 and 
    [DateTime] Between '3/8/2012' and '3/11/2012' 

格式(MM/DD/YYYY)

樣本值

3/8/2012 11:40:46 PM 
3/8/2012 11:40:46 PM 
3/9/2012 11:57:55 AM 
3/9/2012 10:48:02 PM 
3/10/2012 11:57:20 PM 

該查詢未在這兩個日期之間返回任何行。此查詢中的任何更改?

謝謝

Ajay。

+1

我不知道你是在3月份查詢某些日期還是你的意思是在一個月中的第三個日期。也許SQL Server也很混亂。嘗試將日期格式更改爲'yyyymmdd' – 2012-03-10 20:55:55

+0

您是否可以提供沒有使用範圍過濾器的[DateTime]值示例,也沒有轉換? – 2012-03-10 20:57:15

回答

4

如果您使用103(d/m/y),那麼爲什麼您的where子句使用m/d/y?您是否使用英國/加拿大的區域設置?堅持標準的,明確的格式,如yyyymmdd,你將有更多的可預測的結果。

SELECT DISTINCT CONVERT(DATE, [DateTime]) 
FROM dbo.StudentAttendance_FK 
WHERE LecturerID = 5033 
AND CourseID = 1004 
AND SubjectID = 120 
AND [DateTime] >= '20120308' AND [DateTime] < '20120312';