版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
版权
SQL Server专栏收录该内容
66 篇文章0 订阅
订阅专栏
SQL Server中的between and基本用法大家耳熟能详,这里不说它的用法,就说最近用它查数据时碰到的一个问题。基本情况是这样子的:
数据库中有一个字段field7,是datetime类型的,也就是这个字段会保存年月日 时分秒的数据,当页面传过来数据'2017-04-18'(开始时间)和'2017-04-20'(结束时间)时,查询的SQL应该是:
field7 between '2017-04-18' and '2017-04-20'。这样子查询之后,能查询到18/19的数据,20的数据没有。
而实际上我们需要显示20号的数据。
解决方法有4个:
1、手动往日期后面加1(不推荐):
基本思路:获取到日期之后手动给日期+1,也就是人为的推后一天,这样子就出来当前的数据了。
弊端:需要处理跨月、跨年、闰年的情况,比较麻烦。所以不推荐。
2、在between and的日期后面添加时分秒的限制(推荐):
3、使用>=、