Mysql查询时间区间数据

我有一张请假申请表,里面有StartTime(请假开始时间),EndTime(请假结束时间),前端查询数据的时候会传一个区间,
比如说我要查询10.01到10.31的所有请假数据,那么请假时间为9.25到10.3 的也要查出来,10.30到11.04的也要查出来,这种
Sql如何写,求大神指点。

7个回答

1、StartTime>=10.01 AND EndTime<=10.31
2、StartTime<=10.01 AND StartTime>=10.01 AND EndTime<=10.31
3、StartTime>=10.01 AND StartTime<=10.31 AND EndTime>=10.31
4、StartTime<=10.01 AND EndTime>=10.31

四种组合都能满足你说的情况,之间用or就可以连起来,看着比较复杂,你画时间轴能看出来

wangjinduo35056
王金铎❤️刘茜 好的 我试试
12 个月之前 回复

没理解你的意思,传的时间是10.01-10.31,获取数据区间是9.25-11.4?

wangjinduo35056
王金铎❤️刘茜 比如 10.1到 10.3 9.25到10.3的 都显示出来
12 个月之前 回复
wangjinduo35056
王金铎❤️刘茜 对 也就是说 开始时间和结束时间 只要包含在这个区间的都展示出来
12 个月之前 回复

或者用简单点的
1、StartTime>=10.01 AND StartTime<=10.31
2、EndTime>=10.01 AND EndTime<=10.31

2种情况一种满足即可。开始与结束只要在这个区间一个就满足

wangjinduo35056
王金铎❤️刘茜 哥 我不太理解
12 个月之前 回复

(startTime >= 10.01 and startTime <=10.31) or (endTime >= 10.01 and endTime <=10.31)

wangjinduo35056
王金铎❤️刘茜 谢谢
12 个月之前 回复

你的意思就是StartTime 在前端传过来的时间区间内,或者endTime 在前端传过来的时间区间内,那就这样喽:
(startTime >= 10.01 and startTime <=10.31) or (endTime >= 10.01 and endTime <=10.31)

m0_37532969
LiuZh__ZY
12 个月之前 回复
wangjinduo35056
王金铎❤️刘茜 谢谢
12 个月之前 回复

前后各多加七天就行了

不知道我是不是读懂了你的意思,用between。请假开始或者结束时间在设置的时间段内

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Mysql查询时间数据
1、查询当天数据 SELECT * FROM `order` WHERE TO_DAYS(order_time) = TO_DAYS(NOW()) 2、查询近30天的数据 SELECT * FROM `order` where DATE_SUB(CURDATE(), INTERVAL 30 DAY) &amp;lt; date(order_time) 3、查询本月数据 SELECT * F...
查询时间区间的问题
请大家帮我看看这句话错在什么地方?rn[code=SQL]rnselect * from month_table where date between (year(date)=2009 and month(date)=7) and (year(date)=2009 and month(date)=9)rn[/code]
SQL 查询时间区间
表 table rnrn[code=HTML]表 tablernrnid 日期 仓库 费用rn1 2011-01-01 1 3rn2 2011-01-02 1 2rn3 2011-06-01 1 7rn4 2011-02-01 2 12rn5 2011-02-05 2 1[/code]rnrn怎样查询日期在 2011-06-25 -- 2011-07-24 之间的数据,如果查不到, 就查询2011-05-25 -- 2011-06-24之间的数据,如果还查不到 就依次类推,知道查询到为止,rn
mysql时间区间问题
一、between……and…… SELECT * FROM 表名 WHERE 开始时间字段名 BETWEEN '2018-09-01' AND '2018-09-14'; 发现9月14号的数据没有出来,那就证明between……and……是左闭右开,即[a,b),包含a的值,不包含b的值。 将上面代码修改下面的语句即可,将原来的日期加上一天,就行。 select * from ...
MySql获取某个时间区间的数据
笔记,MySql获取某个时间区间的数据欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出...
MySql查询指定时间数据
user_event :用户事件表 create_time :表中存储时间的字段   #获取当月数据 SELECT * FROM user_event WHERE DATE_FORMAT(create_time,'%Y-%m') = DATE_FORMAT(NOW(),'%Y-%m') #获取3月份数据 SELECT * FROM user_event WHERE DATE_FORMAT...
关于Mysql某一个区间的查询
select * from tb_member_level where (( 70 &gt;= integral_min and 70 = integral_min and 79 =70 and integral_max
php查询mysql小于某个时间的数据
在写代码的时候,用到select查询数据库中小于某个时间的数据rn[code=PHP]$sql.="SELECT * FROM party LEFT JOIN students ON party.学号=students.学号 WHERE CONCAT($sign_3) LIKE '%".$char[0]."%' AND $c_time_str>=$smaller_1 AND $c_time_str<=$bigger_1 AND $g_time_str>=$smaller_2 AND $g_time_str<=$bigger_2 AND $c_grade>=$c_grade_smaller AND $c_grade<=$c_grade_bigger AND $g_grade>=$g_grade_smaller AND $g_grade<=$g_grade_bigger";[/code]rnrn其中$c_time_str 和 $g_time_str 是时间date格式的字段名, $smaller_1 跟$bigger_2 是时间,但是显示查询结果是零条。也没显示错误。rn如果把 限制为<=某个时间的$c_time_str<=$bigger_1,$g_time_str<=$bigger_2去掉后,就能查出结果。开始怀疑是变量有错误,就把$bigger_1替换为一个时间2009-02-01,还是不行。rn单独写成[code=PHP]$sql.="SELECT * FROM party LEFT JOIN students ON party.学号=students.学号 WHERE CONCAT($sign_3) LIKE '%".$char[0]."%' AND $c_time_str<=$bigger_1";[/code]rn也不行,请问写<=某个时间的时候有什么要求吗
mysql中时间数据比较查询问题
今天在群里有个人碰到了一个这样的问题。他的sql是查询某一个时间段的数据,但是他传入的结束之是 例如: select * from orders where ordertime>='2017-02-19' and ordertime 然后查询出来的数据并没有包括2017-02-20的数据。 数据库中的记录如下: 后来想了想。 是不是因为没有传入时分秒的问题。
Mysql 时间编辑和查询
用户用来查询指定时间的数据:user_event :用户事件表create_time :表中存储时间的字段#获取当月数据 SELECT * FROM user_event WHERE DATE_FORMAT(create_time,'%Y-%m') = DATE_FORMAT(NOW(),'%Y-%m') #获取3月份数据 SELECT * FROM user_event WHERE DATE_...
mysql 查询建表时间
把库名和表名替换成你想要查询的表 SELECT CREATE_TIME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='库名' AND TABLE_NAME='表名';
MySQL查询时间时间戳
select now(),sleep(3),sysdate(),current_timestamp, current_timestamp() ; now():返回当前时间 sysdate() 动态执行到,再返回时间 java代码在MySQL查询ps.setDate(3, new java.sql.Date(new java.util.Date().getTime())); ps.setTime
mysql查询建表时间
SELECT CREATE_TIME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='db_campus(库名)' AND TABLE_NAME='tb_ilovi_device(表名)';
MYSQL时间统计查询
rn----------------------rnid, create_timern1, 20140101rn2 20140102rn3 20140103rn4 20140104rn5 20140105rn------------------- tableArnrnrn求20140101时间到 now() 有几个星期, 从星期一 到星期天 有多少数据, 每一天下面在分小时统计有多少数据 1个id就是一条数据rnrn 时间 ,星期一, 星期二.......................合计rn 9-10rn 10-11rn ...rn......rn......rn 20-21
mysql 查询时间
rn请问:从现在开始算。7天前的查询语句如何写?rnrn[code=C#]rn" DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间) ";rn[/code]rn我是这样写的 但是查不到数据而写成rn[code=C#]rn" DATE_SUB(CURDATE(), INTERVAL 7 DAY) >= date(时间) ";rn[/code]rn这样就行了 请问下 到底是哪个?rnrn从现在开始算。1年内的数据又如何得到?rnrn[code=C#]rn " and YEAR(时间)=YEAR(NOW())";rn[/code]rn我这样写 还是查不到去年今天的数据 而是今年的数据
mysql查询时间
查询当前日期 SELECT DATE_SUB(CURDATE(),INTERVAL 0 DAY) ; SELECT NOW(); SELECT CURDATE(); 如需格式化可用DATE_FORMAT函数 如:SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %h:%i:%s'); 查询昨天 SELECT DATE_SUB(CURDATE(),INTERVAL ...
日志分析,查询时间区间段的日志
在查看线上问题的时候,一般我们会通过关键字找到发生问题的日志 这样虽然可以抓到错误信息的行,但是看不到错误的上下文信息 分析问题的时候往往需要查看前后一段时间的日志 所以总结了几种参看指定时间段日志的方法 sed 注意:查询的日期必须存在,这个可以通过自己找到关键行预估出时间段,如果查不出来日志可以考虑是这个问题 并且日期的格式需要匹配上,其实日期也是当做字符串比较的,毕竟日期是一直增长的 p 必...
怎么用SQL语句查询时间区间?
时间字段的格式,是rnrn[img=https://img-bbs.csdn.net/upload/201404/03/1396507772_6251.jpg][/imgrnrn储存的时间是精确到秒的自动储存。rn希望通过rnSELECT * FROM TABLE WHERE [******]rn实现,能够按照某一天来查询,或者按照某一小时来查询。rnrn比如说,输入2014/4/3,那么就提取当天的数据,输入2014/4/3 9:00:00,就提取当天9点到10点间的数据rn只实现一种功能即可。rnrn这中查询范围应该怎么转换为 AND 或者 OR 的大小条件?rnrn能通过这样的语句实现查询吗,还是有其他的方式
postgresql查询某时间区间的所有日期
核心sql如下: select daytime::date from generate_series(('2017-06-01'),--查询开始日期(可根据需求调整) (select now()::date),--查询结束日期(可根据需求调整) '1 day'--间隔(可根据需求调整)) s(daytime) 以上sql,得到结果为从6月1号到今天这个时间区间
mysql 查询开始时间和结束时间是一个月的数据sql
开始时间和结束时间是时间戳格式: 语句: SELECT FROM_UNIXTIME( cm_usetime ) as '开始时间', FROM_UNIXTIME( cm_starttime ) as '结束时间' FROM xb_coupon_member AS c WHERE cm_starttime &amp;gt;= UNIX_TIMESTAMP( '2019-01-01 00:...
问个MYSQL多个查询问题,非区间
一张表里面,比如我要查询id分别等于1 3 6 ....的数据rn我所知道的只能这样:rn[code=sql]rnselect * from xxx where id=1 or id=3 or id=6 or ....rn[/code]rn有没有优雅一点儿的方法?
MYSQL根据出生日期查询年龄区间
SELECT nld AS '年龄段', count( * ) AS '人数' FROM ( SELECT CASE WHEN birth_date BETWEEN DATE_SUB( NOW( ), INTERVAL 20 YEAR ) ## 1999-04-08 16:06:23 AND NOW() THEN ## 2019-04-08 15:53...
mysql实现开始时间和结束时间的查询
1.获取当前时间 SimpleDateFormat df = new SimpleDateFormat(&quot;yyyy-MM-dd HH:mm:ss&quot;);  System.out.println(df.format(day));    通过Date类来获取当前时间     2.SimpleDateFormat df= new SimpleDateFormat(&quot;yyyy-MM-dd HH:mm...
mysql查询根据时间排序
表数据: mysql查询根据时间排序,如果有相同时间则只查询出来一个 所以需要再判断,如果时间相同,则根据id进行降序排序
mysql 按时间范围查询
有一个表 表名字: tablern时间字段名字: time (YYYY-MM-DD HH:MM:SS)rn数据字段名字: data (设备返回的信息如:通讯异常等)rn设备编号字段名字: id (设备编号)rnrn表的情况介绍: 这个表里面数据很多几百万条左右,我列出了3个要用到的字段。rn 储存的设备编号也有很多。收到的信息大概是几秒钟一条。但是不确定有时候10秒钟一条数据rn 表存储的设备编号不是连续一个设备的,rn 例如:rn time id datarn 2017-2-23 16:05:33 15 1rn 2017-2-23 16:05:38 18 0.8rn 2017-2-23 16:05:39 14 3.2rn 2017-2-23 16:05:45 15 5.9rn 2017-2-23 16:05:58 12 1.5rnrn rn需要筛选: id相同(同一个设备的信息),8个小时内,data的数据要持续大于1,否则就是异常。筛选出异常的信息。rnrnrn这样的功能用sql可以实现么,需要遍历表怎么比较啊,一直没想出来怎么解决希望哪位大神不吝赐教。
Mysql根据时间范围查询
select * from tb_name where + 本周:YEARWEEK(date_format(时间字段,'%Y-%m-%d')) = YEARWEEK(now());  上周:YEARWEEK(date_format(时间字段,'%Y-%m-%d')) = YEARWEEK(now())-1;  本月:date_format(时间字段,'%Y-%m')=date_forma
时间在mysql中查询的问题
我用的是mysql,我需要查询某些天的记录,其中表中datetime是表达时间的列(Datetime类型)。rn例如我需要查询30天以内的记录,我该怎样写呢?
MySQL查询有关时间的操作
date_format(字段名,'%x年%m月%d日 %H:%i:%S') 字段名我一般是使用上面的字段对查询时间进行格式化,例子:
mysql查询两个时间的时间差
需要查询出两个时间的时间差: select *,TIMESTAMPDIFF(minute,create_time,update_time) as difference from data where app_id=24820 and app_store_id=1016820238 and date(create_time)='2019-02-18' and state&amp;gt;0;   ...
mysql查询:有关时间的筛选
方法一:直接拿字段比较 (1)以下这两种方式最终效果一样 SELECT bb.borrow_no,bb.create_time FROM borrow bb WHERE bb.create_time&amp;amp;gt;='2018-09-11 00:00:00'; SELECT bb.borrow_no,bb.create_time FROM borrow bb WHERE bb.create_...
关于Mysql查询时间请教
大家好,现在做的Mysql数据库,用C++操作它,rn之前还好,现在数据越来越多,慢死了,大概九十万的数据,查询对比完要四五秒。rnrn我做的功能是,扫描一串数据,对比数据库中数据,如果有重复就报错,没有重复就写到数据库。rn就如上一直操作数据越来越多,扫描输入越来越慢。rnrn只有一个表。rnrn有没什么方法可以提高查询速度啊,好慢啊现在。
mysql查询时间带.0
从mysql中查询出来时间,然后放到一个String中,发现每个字符串的末尾都带.0,这个可以一个个的处理,不过太麻烦(例如,我查询了一个list,当中的每一个对象都有time属性,我一个个的处理需要遍历一遍),请问有什么办法在查询的时候就可以避免这种情况。rn数据库中的时间是datetimernJava中是String。
mysql查询前一天的数据
在mysql数据库中,常常会遇到统计当天的内容。 例如,在user表中,日期字段为:log_time 统计当天 sql语句为:    select * from user where date(log_time) = curdate(); curdate()表示当天日期 统计前一天 如果表示前一天的数据,则不能使用curdate()-1,因为当日期为月初时,cu
mysql查询今天的数据
select k.goods_id,k.goods_name,k.skill_price,k.skill_number,k.skill_time, k.skill_state,i.goods_image,g.goods_price oldPrice   from nmr_secondkill k,nmr_goods_images i, nmr_goods g,nmr_store s where
mysql 查询中文数据
我有张表数据量很大,name字段数据有中文的也有英文的,现在我想查出为中文的那些数据?
mysql查询当天的数据
第一种:数量小的时候用,数据量稍微起来巨慢 TO_DAYS(stu.createtime) = TO_DAYS(NOW()) 第二种:速度快 stu.createtime BETWEEN CONCAT(CURDATE(),' 00:00:00') AND CONCAT(CURDATE(),' 23:59:59') 最好配合复合索引来查,避免全表扫描  ...
mysql查询当月数据
SELECT * FROM 表名 WHERE date_format(时间字段, ‘%Y-%m’) = DATE_FORMAT(now(), ‘%Y-%m’) 参阅:https://blog.csdn.net/easternunbeaten/article/details/78915661
mysql 查询左右数据
现在有一条a的数据, 我想查询出来以a为中心,a前面两天数据和a后面两条数据结合起来的5条数据。要怎么实现呢。?
mysql查询二进制数据
有个库结构:rnCREATE TABLE `hanzhiku` (rn `id` int(10) unsigned NOT NULL AUTO_INCREMENT,rn `sj` binary(20) NOT NULL,rn PRIMARY KEY (`id`,`sj`)rn) ENGINE=InnoDB AUTO_INCREMENT=22304 DEFAULT CHARSET=gbk;rn我希望实现的查询是:rn提供一个20比特的二进制数据,查询与这个二进制数最接近的数据rn具体算法:把两个二进制数进行异或操作,得到的数值中1的数量最小.
mysql not in 查询不出数据
表结构如下 表Table_A: 项目 数量 id name 1 张三 2 赵四 3 王五 4 徐六 表Table_B: 项目 数量 id name null 张三 2 赵四 3 王五 sql: SELECT * FROM Ta...
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview