sql 语句问题,关于BETWEEN AND 和DATE 的

我想要查询日期1到日期2之间的所有记录,应该怎么写sql语句SELECT*FROMfamilyWHERE`date`BETWEEN2011-05-06AND2011-05... 我想要查询 日期1 到日期2之间的所有记录,应该怎么写sql语句
SELECT *
FROM family
WHERE `date`
BETWEEN 2011 -05 -06
AND 2011 -05 -10
ORDER BY `id`
LIMIT 0 , 10 结果显示无记录为什么?我明明有记录
展开
 我来答
肥仙女a
高粉答主

2020-04-21 · 我是游戏小达人,专注于分享游戏资讯。
肥仙女a
采纳数:477 获赞数:115573

向TA提问 私信TA
展开全部

1、打开SQLServerManagementStudio管理工具,连接上数据库,创建一张测试表,用于测试Between...and查询结果是否包含边界值。

CREATETABLETestBteween(

Col1varchar(200)NOTNULL,

Col2varchar(200)NULL,

Col3intNULL

)

2、往测试表TestBetween中插入几行测试数据。

insertintoTestBteween(Col1,Col2,Col3)values('第1行','Hello',10);

insertintoTestBteween(Col1,Col2,Col3)values('第2行','World',20);

insertintoTestBteween(Col1,Col2,Col3)values('第3行',null,null);

insertintoTestBteween(Col1,Col2,Col3)values('第4行','Hello',40);

insertintoTestBteween(Col1,Col2,Col3)values('第5行','World',50);

3、查询表中的所有测试数据。

select*fromTestBteween;

4、使用between...and查询Col3数字列在10到40之间的结果,从运行结果可以看出,10、40都包含在了查询结果中,说明between...and查询结果是包含边界值的。

select*fromTestBteweenwhereCol3between10and40;

5、使用between...and查询Col3数字列在10到30之间的结果,从结果可以看出,只要等于一个边界值就会查询出来。

select*fromTestBteweenwhereCol3between10and30;

6、使用between...and查询Col1中文列在第1行到第3行之间的结果,从结果可以看出,也是包含边界值的。

select*fromTestBteweenwhereCol1between'第1行'and'第3行';

7、使用between...and查询Col2英文列在Hello到World之间的结果,从结果可以看出,也是包含边界值的。

select*fromTestBteweenwhereCol2between'Hello'and'World';

百度网友07f2face2
推荐于2018-02-28 · TA获得超过283个赞
知道小有建树答主
回答量:382
采纳率:50%
帮助的人:135万
展开全部
select .. from ... where 字段名(这里是时间格式) BETWEEN 日期格式1 and 日期格式2
因为2011 -05 -06不是日期,得转化为日期格式,现在只是字符串
追问
没太明白你的意思,为什么说他不是日期,那得怎么才能转化为日期,请指点指点~
追答
sqlserver: BETWEEN  convert(datetime,'2011-05-06')  and convert(datetime,'2011-05-10') 
oracle: to_date('2011-05-06','yyyy-mm-dd') and to_date('2011-05-10','yyyy-mm-dd')
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
635557275
2011-05-12 · TA获得超过274个赞
知道答主
回答量:125
采纳率:0%
帮助的人:0
展开全部
例如 #05/12/2005# 的前一天和后一天之间: select * from table1 where [date] <=dateadd("d",1,#05/12/2005#) and [date] >=dateadd("d",-1,#05/12/2005#) 例如 #05/12/2005# 的前两个月和后两个月之间: select * from table1 where [date] <=dateadd("",2,#05/12/2005#) and [date] >=dateadd("m",-2,#05/12/2005#)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
华夏日长兴
2011-05-12 · TA获得超过9592个赞
知道大有可为答主
回答量:6305
采纳率:85%
帮助的人:3673万
展开全部
SELECT *
FROM family
WHERE `date`
BETWEEN '2011 -05 -06'
AND '2011 -05 -10'
ORDER BY `id`
LIMIT 0 , 10

这样查肯定有记录
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liantun91
2011-05-12 · 超过20用户采纳过TA的回答
知道答主
回答量:322
采纳率:0%
帮助的人:0
展开全部
and 系统时间 between addtime and stoptime 字段上不能加引号的,否则会认为是个字符串另外where 列值这个没有条件啊 where 列值=?? and
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式