共計 1966 個字符,預(yù)計需要花費 5 分鐘才能閱讀完成。
這篇文章將為大家詳細(xì)講解有關(guān) MSSQL SERVER 中 BETWEEN AND 如何使用,文章內(nèi)容質(zhì)量較高,因此丸趣 TV 小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
使用的 sql:
SELECT ID, Name, RegisterDateFROM CustomerWHERE (RegisterDate BETWEEN 2007-01-06 AND 2007-01-06)
結(jié)果是傳回 1 筆: 丁丁,符合我的預(yù)期
但是 如果丁丁的 RegisterDate 的時間 不是 00:00:00 呢?
如果資料是這樣
IdNameRegisterDate1 澎澎 2007/1/5 00:00:002 丁丁 2007/1/6 04:37:003 亞亞 2007/1/7 00:00:00
一樣的 sql
SELECT ID, Name, RegisterDateFROM CustomerWHERE (RegisterDate BETWEEN 2007-01-06 AND 2007-01-06)
傳回來的是 0 筆
嗯,因為我沒有給予正確的時間範(fàn)圍嘛,我的查詢條件應(yīng)該是 2007/1/6 號整天時間範(fàn)圍。
所以我通常程式在查詢前,都會先幫日期加 1 天
RegisterMaxDate = RegisterMaxDate.AddDays(1);
但是,這樣就對了嗎??
這樣的程式產(chǎn)生的 sql 是
SELECT ID, Name, RegisterDateFROM CustomerWHERE (RegisterDate BETWEEN 2007-01-06 AND 2007-01-07)
反而傳回 2 筆,把亞亞也傳回來了
因為 Sql 的 between min And max 是 value =min value = max 的意思
所以我應(yīng)該更精確的
RegisterMaxDate = RegisterMaxDate.AddDays(1).AddSeconds(-1);
那樣產(chǎn)生的 sql 才會是
SELECT ID, Name, RegisterDateFROM CustomerWHERE (RegisterDate BETWEEN 2007-01-06 AND 2007/1/6 23:59:59)
傳回 1 筆,也就是丁丁,我要的資料。
4.3.5 限定數(shù)據(jù)范圍——BETWEEN
在 WHERE 子句中,使用 BETWEEN 關(guān)鍵字可以更方便地限制查詢數(shù)據(jù)的范圍。當(dāng)然,還可以使用 NOT BETWEEN 關(guān)鍵字查詢限定數(shù)據(jù)范圍之外的記錄。
語法格式可表示如下:
表達(dá)式 [NOT] BETWEEN 表達(dá)式 1 AND 表達(dá)式 2
比如,選擇范圍在 10~100 之間的數(shù),采用 BETWEEN 運算符可以表示為 BETWEEN 10 AND 100。
★ 注意 ★
使用 BETWEEN 限制查詢數(shù)據(jù)范圍時同時包括了邊界值,而使用 NOT BETWEEN 進(jìn)行查詢時沒有包括邊界值。
實例 20 使用 BETWEEN 限定數(shù)據(jù)范圍查詢
本實例實現(xiàn)在 BookInfo 表中,查詢圖書價格在 35~60 之間的所有圖書記錄。代碼如下:
USE Library SELECT * FROM BookInfo WHERE price BETWEEN 35 AND 60
運行該代碼,得到的查詢結(jié)果如圖 4.21 所示。498)this.style.width=498; border=0 圖 4.21 查詢 BookInfo 表中圖書價格在 35~60 之間的記錄
從結(jié)果可見,使用 BETWEEN 關(guān)鍵字查詢包含了邊界值。
實際上,使用 BETWEEN 表達(dá)式進(jìn)行查詢的效果完全可以用含有“=”和“=”的邏輯表達(dá)式來代替,使用 NOT BETWEEN 進(jìn)行查詢的效果完全可以用含有“”和“”的邏輯表達(dá)式來代替。
對于實例 20,若采用含有“=”和“=”的邏輯表達(dá)式來代替 BETWEEN 表達(dá)式,代碼如下:
USE Library SELECT * FROM BookInfo WHERE price =35 AND price =60
執(zhí)行該代碼,會得到同樣的查詢結(jié)果。
使用 BETWEEN 運算符也可以實現(xiàn)時間的比較,下面就給出一個具體的應(yīng)用實例。
實例 21 使用 BETWEEN 運算符限定時間范圍查詢
本實例實現(xiàn)在 BookInfo 表中,查詢出版日期在 2004/5/ 1 和 2006/1/ 1 之間的所有圖書記錄。代碼如下:
USE Library SELECT * FROM BookInfo WHERE pubdate BETWEEN 2004/5/1 AND 2006/1/1
運行該代碼,得到的查詢結(jié)果如圖 4.22 所示。498)this.style.width=498; border=0 圖 4.22 查詢 BookInfo 表中出版日期在 2004/5/ 1 和 2006/1/ 1 之間的記錄
關(guān)于 MSSQL SERVER 中 BETWEEN AND 如何使用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。