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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 语句问题,关于BETWEEN AND 和DATE 的相关的知识,希望对你有一定的参考价值。

我想要查询 日期1 到日期2之间的所有记录,应该怎么写sql语句
SELECT *
FROM family
WHERE `date`
BETWEEN 2011 -05 -06
AND 2011 -05 -10
ORDER BY `id`
LIMIT 0 , 10 结果显示无记录为什么?我明明有记录

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';

参考技术A 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')

本回答被提问者和网友采纳
参考技术B 例如 #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#) 参考技术C SELECT *
FROM family
WHERE `date`
BETWEEN '2011 -05 -06'
AND '2011 -05 -10'
ORDER BY `id`
LIMIT 0 , 10

这样查肯定有记录
参考技术D and 系统时间 between addtime and stoptime 字段上不能加引号的,否则会认为是个字符串另外where 列值这个没有条件啊 where 列值=?? and

SQL语句中 between and

查询两个日期之间 比如‘2012-02’到‘2012-03’ 和’2012-06‘到‘2012-07’这两个时间内的数据这么写

参考技术A sql操作符
BETWEEN
...
AND
会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
SQL
BETWEEN
语法
SELECT
column_name(s)
FROM
table_name
WHERE
column_name
BETWEEN
value1
AND
value2
Persons
表:
Id
LastName
FirstName
Address
City
1
Adams
John
Oxford
Street
London
2
Bush
George
Fifth
Avenue
New
York
3
Carter
Thomas
Changan
Street
Beijing
4
Gates
Bill
Xuanwumen
10
Beijing
BETWEEN
操作符实例
查询字母顺序显示介于
"Adams"(包括)和
"Carter"之间的人
sql语句
SELECT
*
FROM
Persons
WHERE
LastName
BETWEEN
'Adams'
AND
'Carter'
结果集:
Id
LastName
FirstName
Address
City
1
Adams
John
Oxford
Street
London
2
Bush
George
Fifth
Avenue
New
York
使用
NOT
BETWEEN
...
AND
就会选择不再两个值之间的数据

以上是关于sql 语句问题,关于BETWEEN AND 和DATE 的的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句中 between and

SQL SELECT、CASE、BETWEEN INTO 语句

sql语句 BETWEEN AND 检索日期期间内,最大时间点和最小时间点

SQL中两个日期的查询语句怎么写?

sqlserver多表查询分页语句

在 SQL IN 子句中使用 between