2010-04-12 82 views
1

我有這個日期的&時間的:問題與日期查詢 - SQL Server 2008中

DATE1:2010年10月4日 - 時間:08:09

日期2:11/04/2010 - 時間:08 :14

我需要顯示所有日期的2010年10月4日時間之間06:00 11/04/2010時間6:00

我寫這篇文章:select * from MyTbl where ((Tdate BETWEEN '20100410' AND '20100411') and (Ttime BETWEEN '06:00' and '06:00'))

,但我得到制止y表

感謝提前

+0

什麼數據類型是Tdate和Ttime? – gbn 2010-04-12 06:55:51

+0

Tdate和Ttime是日期時間型 – Gold 2010-04-12 07:03:01

+0

謝謝,請參閱我的回答請 – gbn 2010-04-12 07:15:02

回答

3

如果兩列日期時間,只需添加他們,你可以做一個「適當」的範圍查詢

where Tdate +Ttime BETWEEN '2010-04-10 06:00:00' AND '2010-04-11 06:00:00' 
+0

+1對於Tdate + Ttime,然後使用「BETWEEN」。保存至少2行。 :-) – 2010-04-12 07:17:36

1

這是不正確的。

結果集返回的是所有在10/04/2010 06:00 - 10/04/2010 06:00或11/04/2010 06:00 - 11/04/2010 06: 00。

(這意味着對於要檢索的記錄確切有2個有效分鐘)。

您需要根據包括時間在內的完整日期進行過濾。

0

我認爲你正在尋找這樣的:

select * 
from MyTbl 
where (Tdate = '20100410' AND Time >= '06:00') 
    OR (TDATE > '20100410' AND TDATE < '20100410') 
    OR (Tdate = '20100411' AND Time <= '06:00') 
+0

你或許可以做一些And或電路,並使這個優化..... – 2010-04-12 06:45:25

+0

你認爲這將真的有用嗎?你可以用'AND'代替。 – Amsakanna 2010-04-12 06:47:14

+0

從MYTBL 選擇* 其中(Tdate = '20100410' 和時間> = '06:00' ) AND(Tdate> '20100410' AND TDATE < '20100410') AND(Tdate = '20100411' 和時間< = '06:00') – Amsakanna 2010-04-12 06:55:39

1

查找訂單總數這被放置在今年的每個月1987

SELECT COUNT(OrdId) AS TotalNumberOfOrder FROM OrderABC WHERE OrdDate > '1987-01-01' AND OrdDate < '1987-12-31'; 

SELECT COUNT(OrdId) AS TotalNumberOfOrder FROM OrderABC WHERE OrdDate BETWEEN '1987-01-01' AND '1987-12-31';