2016-07-29 162 views
2

我有一個小問題,我試圖解決。我正在VB6中使用SQL SERVER 2008進行存儲。這是我的問題....SQL SERVER 2008 Select語句

我在tblClientInformation中爲客戶端,ClientID,ClientTask,TaskID,FromDate,ToDate輸入數據。

所以我們可以說我輸入客戶數據,例如:

ClientID ClientTask TaskID FromDate ToDate 
177  Acct  21  7/28/2016 8/3/2016 
179  Acct  21  7/28/2016 8/4/2016 

因此,這裏是我的問題 - 我只有2點開這個的TaskID。所以,在我進入的這些記錄我檢查這樣的計數的任何一個......

Select ClientID from tblClientInformation where taskID=21 and FromDate>='7/28/2016' 

在這種情況下,我會得到的。然而計數我的問題來了,當我有人試圖添加另一個記錄在2016年7月29日(我從日期始終今天),所以在這種情況下,系統會做到這一點....

Select clientId from tblClientinformation where taskID=21 and FromDate>='7/29/2016' 

但現在它的顯示爲沒有記錄,因爲在SQL Server中FROMDATES是全部在2016年7月29日前完成(可以在我的表格數據中看到)。但是我想確保當我進入FROMdate = 7/29/2016的客戶端時,FromDate和ToDate之間沒有ClientID。所以基本上,如果我今天嘗試在7/29/2016添加客戶端 - 它應該顯示2個clientID,因爲7/29/2016位於FromDate和ToDate之間。

+1

例如在這種情況下,我添加了日期爲'8/4/2016'的行,它僅在'ToDate'字段的第二行?在這種情況下它應該只顯示1條記錄嗎?如果日期是「8/5/2016」 - 沒有記錄? – gofr1

+0

如果添加8/4/2016,那麼它應該只顯示一個字段,因爲它介於FromDate和Todate之間。而對於2016年5月8日 - 沒有記錄,因爲它不在indate和todate之間。 – BobSki

+0

@ gofr1我只是試圖顯示記錄輸入日期在fromDate和toDate之間 – BobSki

回答

2

您可以使用此查詢顯示所有記錄,其中進入Date之間的FromDateToDate(literaly):

DECLARE @DateToCheck date = '8/4/2016' 

SELECT FieldsYouNeed 
FROM tblClientinformation 
WHERE taskID=21 and @DateToCheck between FromDate and ToDate 
1

爲什麼你不能使用

SELECT clientId 
FROM tblClientinformation 
WHERE taskID=21 
    AND FromDate <='7/29/2016' 
    AND ToDate >= '7/29/2016'; 

在這種情況下,從7/28日起小於今天的日期,並且8/31的日期大於今天的日期並將返回兩個記錄。