当前位置:首页 » 编程语言 » sql区间查询
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql区间查询

发布时间: 2022-01-12 22:23:36

㈠ 如何在sql中按时间段查询数据

sql server:

select * from 表 where 发生日期>'2008-7-1' and 发生日期<'2008-12-31'

access:

select * from 表 where 发生日期>#2008-7-1# and 发生日期<#2008-12-31#

这样就可以了,注意sql server与access中的日期有一点不一样。

(1)sql区间查询扩展阅读:

sql查询日期语句

select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0 //查询当天日期在一周年的数据

select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0 //查询当天的所有数据

SELECT * FROM A where datediff(d,datetime,getdate()) <=30 //前30天

SELECT * FROM A WHERE DATEDIFF(m, shijian, GETDATE()) <=1 //上一月

查询当天记录另类的方法:

SELECT *

FROM j_GradeShop

WHERE (GAddTime BETWEEN CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000')

AND CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000') + 1)

ORDER BY GAddTime DESC

㈡ SQL日期区间查询

--你想要的是不是这样?
--适用于SQL Server

declare @date1 datetime, @date2 datetime
set @date1 = '20140101'
set @date2 = '20140131'

select @date1 date1, @date2 date2,

sum(case when 预付日期 >=@date1 and 预付日期<=@date2 then 预付金额 else 0 end) 预付金额,
sum(case when 实付日期 >=@date1 and 实付日期<=@date2 then 实付金额 else 0 end) 实付金额,
sum(case when 入库日期 >=@date1 and 入库日期<=@date2 then 入库数量 else 0 end) 入库数量,
sum(case when 发票日期 >=@date1 and 发票日期<=@date2 then 发票金额 else 0 end) 发票金额

from table1

㈢ SQL 如何查询一个区间段的所有值

建议先根据查询条件查出对应的区间,然后对这个区间做处理。
处理可以在SQL里面,也可以在应用程序里面。
没特殊要求的话建议采用后者,直接在程序里面写一个循环即可。
如果是要用SQL的话,可以用一个临时表把需要的先放里面再取出即可.

数据库的日期区间查询方法。

access中有个mid函数,可以用来截取字符串或者日期。

select * from 表名 where mid([TestTime],5,10) ='04/19/2013'其中,5代表截取的开始位置,从左数,10代表截取的长度。

数据库的日期区间查询有两种情况:

1:查询给定时间在开始时间列与结束时间列范围中数据;

2:查询日期列在开始时间列与结束时间列范围中数据。

第一种:<,>, <= , >=

select * from 表名 where 日期列 >= to_date('2015-10-20 00:00:00','yyyy-mm-dd hh24:mi:ss')

and t.日期列 <= to_date('2015-10-20 23:59:59','yyyy-mm-dd hh24:mi:ss')。

第二种 between and

select * from 表名 where 日期列 between to_date('2015-10-20 00:00:00','yyyy-mm-dd

hh24:mi:ss')and to_date('2015-10-20 23:59:59','yyyy-mm-dd hh24:mi:ss')。

(4)sql区间查询扩展阅读:

SQL数据库语句:

创建数据库:

CREATE DATABASE database-name。

删除数据库:

drop database dbname。

创建新表:

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)。

删除新表:

drop table tabname。

增加一个列:

Alter table tabname add column col type。

添加主键:

Alter table tabname add primary key(col)。

删除主键:

Alter table tabname drop primary key(col)。

创建索引:

create [unique] index idxname on tabname(col….)。

删除索引:

drop index idxname。

创建视图:

create view viewname as select statement。

删除视图:

drop view viewname。

参考资料来源:网络-sql语句大全



㈤ SQL 如何查询日期在一定范围内的数据

select * from 表 where 日期字段>='开始日期' and 日期字段<='截止日期' and convert(char(8),日期字段,108)>='开始时间' and convert(char(8),日期字段,108)<='截止时间'。

SELECT * FROM 表明 WHERE 日期字段名 BETWEEN '20130101' AND '20130130'。

例如:

select * from tb1 where dDate>='2010-11-05' and dDate<='2010-11-15'
and convert(char(8),dDate,108)>='8:00:00' and convert(char(8),dDate,108)<='9:00:00'.

select * from table1where year(d)=2010 and month(d)=7 and day(d) between 1 and 31
and (Datepart(hour,d)>=22 or Datepart(hour,d)<6)

(5)sql区间查询扩展阅读:

SQL查询日期:

今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0

昨天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=1

7天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=7

30天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=30

本月的所有数据:select * from 表名 where DateDiff(mm,datetime类型字段,getdate())=0

本年的所有数据:select * from 表名 where DateDiff(yy,datetime类型字段,getdate())=0

参考资料:SQL_网络

㈥ sql 查询范围内的数据

oracle10g以上与sqlserver2005以上通用

selectt.*from
(select表名.*,row_number()over(orderby某字段)rnfrom表名)t
wherernbetween200and300

㈦ SQL中查询日期区间内的数据

select * from 借阅信息表 where 编号 between #2006-6-9# and #2008-9-9#
或者
select * from 借阅信息表 where 编号 between "2006-6-9" and "2008-9-9"

㈧ SQL语句怎样查询一个范围

SQL方法完成数值区间查询
要求:根据奖金等级表的数值区间,返回奖金对应的等级。

1、链接外部数据:数据--现有链接--浏览更多,在路径中选择数据Excel文件和目标工作表,建立数据链接。

详细步骤参考前面所发的SQL相关文章。

2、编写sql语句。
2.1、使用switch函数,SQL语句为:
select 姓名,奖金,switch(奖金<200,"D级",奖金<300,"C级",奖金<500,"B级",奖金>=500,"A级") as 奖金等级 from [奖金$a1:b11]

switch函数直接判断数值,若数值小于200,返回D级;数值小于300返回C级;数值小于500,返回B级;余下的数值条件要变化为>=500返回A级而不是<=700。

2.2、使用iif函数,SQL语句为:
select 姓名,奖金,iif(奖金<200,"D级",iif(奖金<300,"C级",iif(奖金<500,"B级","A级"))) as 奖金等级 from [奖金$a1:b11]

其基本思路和switch函数相同,类似工作表函数if的嵌套。

2.3、使用betweent...and,SQ语句为:
select a.姓名,a.奖金,b.等级 from [奖金$a1:b11] a,[奖金等级$] b where a.奖金 between b.最小值 and b.最大值

以戴苏明同学为例子,在SQL代码运行的时候,将戴苏明同学的奖金一一和奖金等级表中的数值进行对比,符合区间的就返回区间等级。其他同学亦然。

但是,当奖金超出最大值700的时候就会取不到该条数据。

如刘平的奖金701并不在betweent...and的区间内,返回的结果中没有刘平的数据。

2.4、使用Where比较大小,sql语句为:
select a.姓名,a.奖金,b.等级 from [奖金$a1:b11] a,[奖金等级$] b where a.奖金 >=b.最小值 and a.奖金<=b.最大值

此方法原理和betweent...and一样,当奖金超过最大值700时,数据将有遗漏(刘平)。

当奖金的最大值为700的时候,以上四种方法都得出同样的结果。

当奖金最大值超过700的时候,3、4两个方法将遗漏奖金大于700的数据。

因此,可在设计奖金等级表的时候,可以将最大值700改为一个比较大的数值,使奖金再高也不会超过,则四种方位皆可。

如更改奖金等级表的最大值700为70000,这么大的一个范围,则四种方法都适用。

㈨ SQL如何实现按数据范围查询

SQL里面 像这种字符串存储的数字 可以直接比较大小
select * from table where CPLSH>='000100' and CPLSH<='000300'
多个范围的话就用or,比如
select * from table where (CPLSH>='000100' and CPLSH<='000300') or (CPLSH>='000305' and CPLSH<='000400')
有几个范围加几个范围

㈩ sql查询价格区间

1、单行子查询出现在WHERE子句中,如下所示。

5、ANY操作符不能单独使用,必须和>、<等比较操作符一起使用。>ANY表示大于列表中任何一个数据即为TRUE;<ANY表示小于列表中的任何数据即为TRUE。具体实现如下图。