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

是不在这个时间段里的数据,譬如不在8-9点并且不在10-12点时间段的数据... 是不在这个时间段里的数据,譬如不在8-9点并且不在10-12点时间段的数据 展开
 我来答
wangzhiqing999
推荐于2017-12-16 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3255万
展开全部
不在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 , 那么很不省事:
没法简单的截取 日期字段的 小时部分,来处理了。
传奇勇者
2011-03-21 · TA获得超过747个赞
知道大有可为答主
回答量:1706
采纳率:75%
帮助的人:796万
展开全部
还是用公式好,不要乱改逻辑
not (( >7 and <8) or (>10 and <12) or ())
这样写起来虽然有些麻烦,但是逻辑不失真,写程序并不是代码越简单越好。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老冯文库
2011-03-21 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8733

向TA提问 私信TA
展开全部
select *
from 表名
where DatePart(hh,时间列) not between 7 and 8

其中时间列是指进行查询判断的列,hh表示小时。
追问
and怎么报错了 SELECT *
FROM MealRecords
WHERE (sign_time NOT BETWEEN (('2011-03-01 07:15' AND '2011-03-01 08:25') AND
('2011-03-01 11:30' AND '2011-03-01 12:50') AND ('2011-03-01 17:15' AND
'2011-03-01 19:10') AND ('2011-03-01 23:25' AND '2011-03-01 24:30') AND
('2011-03-01 03:40' AND '2011-03-01 04:20'))
追答
select *
from 表名
where DatePart(hh,时间列) not between 7 and 8
and DatePart(hh,时间列) not between 7 and 8
你那样写条件是错误的。应该为:
SELECT *
FROM MealRecords
WHERE (sign_time NOT BETWEEN '2011-03-01 07:15' AND '2011-03-01 08:25'
AND
sign_time NOT BETWEEN '2011-03-01 11:30' AND '2011-03-01 12:50'
AND
sign_time NOT BETWEEN '2011-03-01 17:15' AND '2011-03-01 19:10'
AND
sign_time NOT BETWEEN '2011-03-01 23:25' AND '2011-03-01 24:30'
AND
sign_time NOT BETWEEN '2011-03-01 03:40' AND '2011-03-01 04:20'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flyingFish211
2011-03-21 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
可以取到你的时间的钟点,然后
where hour NOT IN (7,8,10, 11, 12, 14, 15)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ygqwind0613
2011-03-21
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
select * from 表名
where ( 时间字段 not between 8 and 9 ) and ( 时间字段 not between 10 and 12 )
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式