SQL语句怎么写(查询不在这个时间段的内容, 如不在7-8 10-12 2-3点的数据)

作者&投稿:并从 (若有异议请与网页底部的电邮联系)
sql 如何查询不在这个范围内的数据,如下~

用not in语句即可解决。
【SQL查询存在一个表而不在另一个表中的数据的具体方法】
例如:A、B两表,找出ID字段中,存在A表,但是不存在B表的数据。A表总共13w数据,去重后大约3W条数据,B表有2W条数据,且B表的ID字段有索引。
方法一
使用 not in ,容易理解,效率低 ~执行时间为:1.395秒~

方法二
使用 left join...on... , "B.ID isnull" 表示左连接之后在B.ID 字段为 null的记录 ~执行时间:0.739秒~


方法三
逻辑相对复杂,但是速度最快 ~执行时间: 0.570秒~


不在8-9点并且不在10-12点
你这个 不在8-9点, 意思是 8:00-9:00 ? 还是 8:00 - 8:59:59 ?

如果是 8:00 - 8:59:59 , 那么很省事:

不知道是什么数据库
如果是 SQL Server 的话:
WHERE
DATEPART(hh, 日期字段) NOT IN (8, 10, 11)
也就是 小时的数字, 不是 8, 10, 11

如果是 Oracle 的话:
WHERE
TO_CHAR( 日期字段, 'HH24') NOT IN ('08', '10', '11')

如果是 MySQL 的话,更省事了
WHERE
HOUR(日期字段) NOT IN (8,10,11)

如果是 如果是 8:00 - 9:00 , 那么很不省事:
没法简单的截取 日期字段的 小时部分,来处理了。

还是用公式好,不要乱改逻辑
not (( >7 and <8) or (>10 and <12) or ())
这样写起来虽然有些麻烦,但是逻辑不失真,写程序并不是代码越简单越好。

select *
from 表名
where DatePart(hh,时间列) not between 7 and 8

其中时间列是指进行查询判断的列,hh表示小时。

可以取到你的时间的钟点,然后
where hour NOT IN (7,8,10, 11, 12, 14, 15)

select * from 表名
where ( 时间字段 not between 8 and 9 ) and ( 时间字段 not between 10 and 12 )


sqlserver 事务日志已满的几种解决方案
2.右键数据库-任务-收缩-文件类型-下拉选择日志-收缩操作-在释放未使用.(默认收缩到1MB)-最后点击确定 3.最后别忘了回到第一步骤把恢复模式改为完整!三.自动收缩:1.为了以后能自动收缩,做如下设置:企业管理器–服务器–右键数据库–属性–选项–选择”自动收缩”QL语句设置方式:EXEC sp_dboption ...

ql语句中条件短语的关键字是
您是要问Sql语句中条件短语的关键字是什么吗?WHERE。SQL是具有数据操纵和数据定义等多种功能的数据库语言,WHERE子句的目的是对选择操作进行一些限制,是条件短语的关键字。

写出创建如下三张数据表的SQL语句
在SSMS中,用【创建表】来设计,包括约束;然后保存,选中该新表,右键【编写表脚本】,SQL就有了项目”表结构:项目号:普通编码定长字符类型,长度为10,主键。项目写出创建如下三张表的sQL语句。按照要求用SQL语句创建表格:选课表:表名——SC属性:Sno字符型,最大7个字符表示学生学号。Cno字符型,...

sql如何将一个查询变成常量
基本的查询语句为select ID,name from TableA select ID,name,新增的列名=(可以上查询语句) from TableA 将你所需要设置的常量放在新增的列名上即可 QL Server查询结果集中的常量通常不作为单独的列在结果集中指定,下面就让我们了解一下SQL Server查询结果集中的常量处理问题。SQL Server查询结果集中的...

sql查询字段是空的语句并且空值用0代替怎么写?
--列是字符类型的select isnull(列名,'0') as 列名 from 表名--列是数字类型的select isnull(列名,0) as 列名 from 表名

SQL提数语句,如何书写
select usercode,name,comcode from B where usercode = (select floor(comcode\/100) comcode2 form B) and name=(select name from B); (成立条件:comcode,usercode都是数字型)

qlsql oracle 怎么把大于某字段小于某字段的数据排成一列
create table mm (a number(10),b number(10));create table nn (c number(10));insert into mm values (1,3);insert into mm values (7,9);commit;declare begin for r in (select a,b from mm) loop insert into nn select * from (select row_number() over(order by a.object...

sql 查询数据按id排序后 再判断某个字段是否为1为一则将这条数据放到...
order by case when 字段名=1 then 0 else 1 end,id

写出创建如下三张数据表的SQL语句。
在SSMS中,用【创建表】来设计,包括约束;然后保存,选中该新表,右键【编写表脚本】,SQL就有了项目”表结构:项目号:普通编码定长字符类型,长度为10,主键。项目写出创建如下三张表的sQL语句。按照要求用SQL语句创建表格:选课表:表名——SC属性:Sno字符型,最大7个字符表示学生学号。Cno字符型,...

influx数据怎么解析
为了解析InfluxDB中的数据,可以使用InfluxQL(类似SQL的查询语言)或Flux查询语言。解析InfluxDB数据的一般步骤如下:1. **选择数据库**:首先,需要选择包含所需数据的数据库。2. **构建查询**:根据需求构建查询语句。可以指定时间范围、选择度量、使用标签进行过滤等。3. **执行查询**:使用InfluxDB...

鹤峰县18870689860: 如何使用sql 语句 把不在一个时间段中的时间提取出来 -
窦初清宣: 什么叫不在一个时间段中的时间? 也就是说你想选出在中午11点到12点和晚上23点到24点之间的数据? 那就将你的时间字段置于这两个区间内 不就选出来了么

鹤峰县18870689860: sql2000 如何按日期查询 不按时间 -
窦初清宣: select * from 表名 where convert(varchar(10),rtime,120)='2009-08-18 '

鹤峰县18870689860: sql语句怎么将某个字段的姓名排除在查询时间之外 -
窦初清宣: 没有别的办法,只能一个一个字段罗列 不过你要是嫌一个一个敲上去麻烦,你可以把你的建表语句调出来 把不查的那个去掉,就行

鹤峰县18870689860: 在sql server 下以大于一个时间值,小于另一个时间值为查询条件,怎么写SQL查询语句 -
窦初清宣: select * from tablename where [datetime] between firsttime and secondtime

鹤峰县18870689860: sql 如何判断某个日期是否在这个月内 -
窦初清宣: declare @a1 datetimeset @a1 = '2013-12-02'-- for M$SQLdeclare @now datetimedeclare @month_bgn datetime, @month_end datetimeset @now = getdate()-- 这个月的第一...

鹤峰县18870689860: SQL语句查询时间段的数据命令语句怎样写? -
窦初清宣: 代码如下: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 小贴士...

鹤峰县18870689860: Excel SQL查询后面的时间格式怎么写 -
窦初清宣: select查询语句时sql语句中最常用的,其中日期有特殊的格式要求,就是日期前后都要连接一个#.可以筛选等于、介于、不等于、大于、小于某个日期的数据,也可以只筛选指定字段的数据,在select后边,如果是*号,就是筛选全部数据,如...

鹤峰县18870689860: 在 SQL 数据库中如何查询不相连日期的3日平均值?SQL查询语句如何写? -
窦初清宣: 先汇总每个日期的总量sum(动态)与行数count(编码),并计算上/下一天日期,保存为临时表#b 对t进行两次inner join 关联,用当天=前天 and 当天=下天,过滤掉下天和上天为NULL的行,作为子查询t.对t再次select,计算平均值 -------- 一般来说平均值的计算不应当是avg(date1)+avg(date2)+avg(data3) 而是avg(sum(data1)+sum(data2)+sum(data3)),当然你确定需求如此也行.

鹤峰县18870689860: java 时间段查询 -
窦初清宣: 不一定非要在sql中判断吧,可以先取两个值,然后在java类型判断,通过拼接sql的形式进行查询,如:if(存在开始时间,不存在结束时间||存在结束时间,不存在开始时间){ select * from 表名where 日期字段 = '时间' }else if(都存在){ select * from 表名 where 日期字段 between 开始时间' and '结束时间' }

鹤峰县18870689860: 如果不用between查询时间段,我想查询今天到今天这个时间段的信息的SQL语句怎么写 -
窦初清宣: 用时间 >= 今天0点

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网