一些評論。您不應該使用帶日期/時間列的between
,因爲它很混亂。您的表情找不到在2015-09-30完成的任務。我假定打算包括9月的最後一天。
一種更好的方式來編寫查詢是有明確的不平等和使用ISO標準的日期格式:
Select TimeTaskCompleted, Task
From Task
Where TimeTaskCompleted >= '2015-07-01' and
TimeTaskCompleted < '2015-10-01';
(如果你想明確的SQL Server的日期,然後取出連字符;上面可以被誤解爲。YYYY-MM-DD一個internationanalization設置)
然後,您可以添加任何的其他的答案提出的條件,但我不會用between
這裏之一:
where CAST(TimeTaskCompleted AS TIME) >= '06:00:00' and
CAST(TimeTaskCompleted AS TIME) <= '21:00:00'
或:
where datepart(hour, TimeTaskCompleted) between 6 and 20
注:後者可能會有點混亂,因爲它在邏輯(下午8:00)說:「20」,但我們的目的是去「下午9:00」 。
感謝您的快速解決 –