MSSQL SERVER中BETWEEN AND如何使用

57次阅读
没有评论

共计 1966 个字符,预计需要花费 5 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 MSSQL SERVER 中 BETWEEN AND 如何使用,文章内容质量较高,因此丸趣 TV 小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

使用的 sql:

SELECT ID, Name, RegisterDateFROM CustomerWHERE (RegisterDate BETWEEN 2007-01-06 AND 2007-01-06)

結果是傳回 1 筆: 丁丁,符合我的預期

但是 如果丁丁的 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 筆

嗯,因為我沒有給予正確的時間範圍嘛,我的查詢條件應該是 2007/1/6 號整天時間範圍。

所以我通常程式在查詢前,都會先幫日期加 1 天

RegisterMaxDate = RegisterMaxDate.AddDays(1);

但是,這樣就對了嗎??

這樣的程式產生的 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 的意思

所以我應該更精確的

RegisterMaxDate = RegisterMaxDate.AddDays(1).AddSeconds(-1);

那樣產生的 sql 才會是

SELECT ID, Name, RegisterDateFROM CustomerWHERE (RegisterDate BETWEEN 2007-01-06 AND 2007/1/6 23:59:59)

傳回 1 筆,也就是丁丁,我要的資料。

4.3.5 限定数据范围——BETWEEN

在 WHERE 子句中,使用 BETWEEN 关键字可以更方便地限制查询数据的范围。当然,还可以使用 NOT BETWEEN 关键字查询限定数据范围之外的记录。

语法格式可表示如下:

  表达式 [NOT] BETWEEN  表达式 1  AND  表达式 2 

比如,选择范围在 10~100 之间的数,采用 BETWEEN 运算符可以表示为 BETWEEN 10 AND 100。

★ 注意 ★

使用 BETWEEN 限制查询数据范围时同时包括了边界值,而使用 NOT BETWEEN 进行查询时没有包括边界值。

实例 20 使用 BETWEEN 限定数据范围查询

本实例实现在 BookInfo 表中,查询图书价格在 35~60 之间的所有图书记录。代码如下:

 USE Library SELECT * FROM BookInfo WHERE price BETWEEN 35 AND 60

运行该代码,得到的查询结果如图 4.21 所示。498)this.style.width=498; border=0 图 4.21 查询 BookInfo 表中图书价格在 35~60 之间的记录

从结果可见,使用 BETWEEN 关键字查询包含了边界值。

实际上,使用 BETWEEN 表达式进行查询的效果完全可以用含有“=”和“=”的逻辑表达式来代替,使用 NOT BETWEEN 进行查询的效果完全可以用含有“”和“”的逻辑表达式来代替。

对于实例 20,若采用含有“=”和“=”的逻辑表达式来代替 BETWEEN 表达式,代码如下:

USE Library SELECT * FROM BookInfo WHERE price  =35 AND price  =60

执行该代码,会得到同样的查询结果。

使用 BETWEEN 运算符也可以实现时间的比较,下面就给出一个具体的应用实例。

实例 21 使用 BETWEEN 运算符限定时间范围查询

本实例实现在 BookInfo 表中,查询出版日期在 2004/5/ 1 和 2006/1/ 1 之间的所有图书记录。代码如下:

USE Library SELECT * FROM BookInfo WHERE pubdate BETWEEN  2004/5/1  AND  2006/1/1

运行该代码,得到的查询结果如图 4.22 所示。498)this.style.width=498; border=0 图 4.22 查询 BookInfo 表中出版日期在 2004/5/ 1 和 2006/1/ 1 之间的记录

关于 MSSQL SERVER 中 BETWEEN AND 如何使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计1966字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)