mysql 根据条件查询数据

在用户表中,有一个生日字段 birth,现在的需求是根据传入的时间段参数,查询此时间段内过生日的用户列表,需要考虑跨年的情况

0

7个回答

不需要考虑什么跨不跨年,直接传进时间,一样的时间格式进行查询

1
根据你的需求,创建数据如下:![图片说明](https://img-ask.csdn.net/upload/201705/23/1495527838_271628.jpg)
有两个分支:
先判断传入的时间段参数前后大小关系,如果后者比前者时间大,则涉及跨年的问题,应该执行
select * from user where substring(birthday,6)>='09-01'   or   substring(birthday,6)<='06-01';
否则,执行
select * from user where substring(birthday,6)>='02-01'   and   substring(birthday,6)<='06-01';
1
zhumengstyle
zhumengstyle 笔误,如果后者比前者小,则涉及跨年问题
接近 2 年之前 回复

查这些时间段的数据不需要考虑这些吧,我一直使用这个,没有出错过:http://blog.csdn.net/xuanzhangran/article/details/54708246

0

select * from 用户 where brith >= starttime and birth <= endtime

birth和时间段参数的格式一致就好了

0

如果你的业务,确实需要对跨年,请参考这个链接:http://blog.csdn.net/xuanzhangran/article/details/55666878

0

生日的判断标准是 几月几号 , 如果传入的时间段是同一年 比如说 2017-05-23 到 2017-06-23 直接取出月日比较肯定没问题啊,但是如果跨年了,就不好控制了,比如 2017-05-23 到 2018-02-01 这个时间段的话,就应该去查 05-23到12-31过生日的 和 01-01到 02-01过生日的

0

涉及到时间查询,最准确最稳妥的做法是使用DATEDIFF函数,如
StringBuilder sb = new StringBuilder();
sb.Append(" SELECT * FROM USERINFO WHERE 1=1");
sb.Append(" AND DATEDIFF(DAY,'{0}',birth)>=0", startTime);
sb.Append(" AND DATEDIFF(DAY,'{0}',birth)< 0", endTime);

其中,DATEDIFF函数最前边一个参数
DATEDIFF(YEAR,'',''),精确到年;
DATEDIFF(MONTH,'',''),精确到月;
DATEDIFF(DAY,'',''),精确到日;
DATEDIFF(HUOR,'',''),精确到小时;
DATEDIFF(MINUTE,'',''),精确到分;

等等,可以根据具体情况使用,你这个情况应该精确到日就可以了

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MySQL根据时间条件查询数据
有时我们面要统计一下数据库中指定日期的数据,如常用的,今天,昨天,明天,本周、上周、本月、上个月份的数据,还有对日期的加减, 除了我们可以使用strtotime来算还可以参考下面方法。   SQL减去指定天数 SELECT * from 表名 where DATE_FORMAT(时间字段,&quot;%Y-%m-%d&quot;) = DATE_ADD(输入时间,INTERVAL -1 DAY); /** ...
MYSQL按条件查找数据
1.登陆mysql数据库,输入用户名及密码2.选择数据库,显示表名3.查找数据库中,获取南京信息职业技术学院的地区名称及学校编号;end
Mysql按条件查询
这是第二篇关于MySql语句的文章,打算写一系列关于Mysql查询的文章,之所以要写出来,是后期在做项目中遇到过一些比较复杂的查询语句,如果用完就放着不管了,时间 久了就忘记了,所以打算把这些语句写成一系列的文章。 和上一篇文章一样,开发环境不变,使用框架也不变。 java代码部分: @Responsebody         @RequestMapping("/XXX.do")   
mysql 数据条件过滤查询练习
原文地址sql语句练习的答案统一放在在文章底部首先展示表的数据 employees 雇员表 在 employees表中 显示雇员 names (first_name, last_name) and salary。 且 salary 不在10000至15000之间的信息。 查询结果如下: 在 employees表中显示雇员 names (first_name, last_name) 和 depar
mysql 查询数据,特定条件排序靠前。
SELECT * FROM `w_user_contacts` WHERE `uid` = 76042197140504576 ORDER BY CASE             WHEN phone = 18141901322 THEN 1             WHEN phone = 17695561638 THEN 1 ELSE         phone END LIMIT 0,10...
mysql根据查询条件更新数据表
-- menu_templateitem表数据更新-- 插入邮箱服务器的修改列929INSERT IGNORE INTO menu_templateitem(menu_template,menu_id)SELECT menu_template,929 FROM menu_templateitem WHERE menu_id = 147;-- 插入邮箱服务器的删除列930INSERT IGNORE ...
mysql 根据条件统计数据量
目录 需求:统计总数,未完成数和完成数 方法一: 方法二: 总结: CREATE TABLE `test_task` ( `id` int(11) NOT NULL AUTO_INCREMENT, `done` tinyint(1) DEFAULT NULL COMMENT '是否完成', `doneTime` int(11) DEFAULT NULL COMMENT '完...
MySql insert:当通过条件查询结果存在该条数据则不插入,否则执行insert
MySql insert:当通过条件查询结果存在该条数据则不插入,否则执行insert
mysql 在一定范围内获取随机数据
若要:在 i&amp;lt;=R&amp;lt;=j,这个范围得到一个随机整数R,需要用到 floor(i+rand()*(j-i+1)) 例如:得到7-12这个范围(包括7和12)内一个随机整数。 select floor(7 + (rand()*6) ) 例如:在用户表中随机取一个用户id [1,10] select id from user where id = floor(1+ (rand()*10...
Django-mysql数据库条件查询
条件查询 参数说明 BookInfo:为图书模型表 id主键, btitle书名, bpup_date出版日期, bread阅读量, bcomment评论量 HeroInfo为应用模型表 hanme英雄名字, hgender性别, hcomment描述, hbook关联图书表的外键 # 条件查询 # 查询id为1的图书 books = BookInfo.objects...
mysql根据查询条件更新
// 根据author_account的uid更新手机号码到user_base表 update user_base u,(select uid,number from author_account) a set u.number= a.number where a.uid= u.uid;
根据条件查找不同的表
SELECT              u.user_name As &quot;fyUser.userName&quot;,             a.id AS &quot;id&quot;,             a.del_flag AS &quot;delFlag&quot;,             a.istatus AS &quot;istatus&quot;,             a.user_id AS &quot;fyuser.id&quot;,          ...
mysql快速复制数据,多条件查询技巧
mysql快速复制数据INSERT INTO 目标表 (字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 来源表; 请注意以上两表的字段必须一致(字段类型),否则会出现数据转换错误 如果是目标表和来源表是同一张表,快速复制数据,可用于测试性能 数据库多条件查询技巧 public ResultSet gradeList(Connection con,PageBean
mysql:根据不同条件查对同一字段进行分组统计
如下图:      根据rgt_cname字段,分组统计不同rgt_state值的数量。 sql语句  SELECT rgt_cname, COUNT(*),  COUNT(IF(rgt_state='在库',rgt_state,NULL)) 在库, COUNT(IF(rgt_state='已领用',rgt_state,NULL)) 已领用 FROM rgt_informatio...
查询不符合条件的数据 mysql
SELECT * FROM yh WHERE xl&amp;lt;&amp;gt;'255' AND xl&amp;lt;&amp;gt;'0' AND lpower&amp;lt;&amp;gt;'255' 一般查询都是where 某字段='条件';但是这次是查询不符合条件的数据; &amp;lt;&amp;gt;表示不等于 例子如下: 1.根据编号查询最近的一条数据而且心率、血压不为255,不为0 SELECT * FROM yh WHERE ...
根据查询条件导出数据
/** * 根据查询条件查询导出数据 */ public void exportTable(){ Page pageInfo = this.getPageInfo(); String taskBookId = request.getParameter(&quot;taskBookId&quot;); String type = request.getParameter(&quot;type&quot;); ...
根据某个条件或者某些条件对数据库进行查询,然后把查询结果进行分页显示
一、.固定条件,直接查询数据库,把结果进行分页显示出来; 见博客 https://blog.csdn.net/qq_37591637/article/details/82951647 二、条件不定,查询数据库,把查询结果进行分页显示 如下图;包含四个条件,用户在选择的时候可以选择一个条件、任意两个条件、三个条件、全部条件进行查询,  思路: 1,jjsp把用户选择的条件参数传递到A...
PHP-CI 查询所有数据-按条件查询数据
1.view  h2><?php echo $title; ?>h2> // 用 $news_item 遍历 根据 $newsXjp_where这个key值取出来的 数据库 ($newsXjp_where as $news_item): ?> h4> 这是 信息读取页面 h4> h3>$news_item['title']; ?>h3> div
mysql随机查询出一条 符合条件的数据
select c.userCrowd_user_id from tab_usercrowd c where c.userCrowd_Id=’6755f9a4-e27f-48fc-88e2-59c1de9c9247’ order by rand() limit 1
mysql 同时查找出字段A在不同条件下的值
MYSQL条件查询--字段A不同值的state为0,1,9的数量统计 - Strck5的博客 - CSDN博客  https://blog.csdn.net/Strck5/article/details/52671918     mysql 如何把一个条件不同的值分到不同的结果-CSDN论坛   https://bbs.csdn.net/topics/392014527?page=1  ...
mysql查询根据列按条件统计总数
mysql可以查询根据某列按条件统计总数
ORACLE———根据时间 为条件查询相关数据
摘要:Oracle中如何通过时间字段为条件来查询相关数据。普及:用到了to_char()这个oracle自带的函数一、小于某一时间(精确到了时分秒):SELECT * FROM OP_BS_CC WHERE TRANS_TIME &amp;lt; TO_DATE ( '2018-04-23 10:39:00', 'yyyy-mm-dd hh24:mi:ss' );1.1.那么大于某一事件只...
MySQL 通过子查询批量插入数据
1 需求 需要将 a 表的数据插入 b 表,其中 a 表的数据很多是冗余的,是原始的多级分类数据,b 表相当于是对 a 表的简化,去掉冗余的数据,两表的 pdm 如下图: 2 方法 将 a 表的各级编码、名称无重复的插入 b 表,并设置对应的级别, 通过子查询批量插入无重复数据的SQL如下: INSERT into category_b (id, name, level) select D...
Redis实现类似SQL的where多条件查询
1、关于保存User表的方案       1.1  使用Redis的Hash类型去保存关系型数据库的User表        1.2 Redis的Hash的key为"SYS_USER_TABLE_SEX_MAN",field:userid   value:json 数据 2、利用Redis的Set来保存满足一类条件的User用户的id信息。例如,性别为女,年龄大于25岁等条件。
mysql中随机获取排序条件中的指定数量数据
使用了mysql的随机函数RAND(),比如随机取12条: SELECT * FROM video_info ORDER BY RAND() LIMIT 12 但是效率较差,执行时间大概用了8秒上下,优化一下并加上条件后: SELECT * FROM video_info WHERE v_id >= (SELECT floor(RAND() * (SELECT MAX(v_i
mysql数据库当中根据时间段来查询数据
今天在项目中遇到需要根据时间查询数据的问题,在百度上面扒了一会儿,终于找到了根据时间查询的方法,做笔记如下: "FROM Nfc_User where DATE_FORMAT(createTime,'%y-%m-%d')>'2016-02-26'; 这是hql语句,换算成sql语句的话就是: select * from nfc_user where DATE_FORMAT(createT
mysql排序字段值相同,分页查询时每次固定值丢失
select * from nani where status=1 order by updatetime desc limit 10,10;  如果数据库中N跳数据的updatetime列值相同,对于上面的sql,查询出来的结果与这条sql select * from nani where status=1 order by updatetime desc;   查询到的第1...
Mysql条件计数查询
在网站开发的过程中,经常会用到数据统计功能,因此条件计数查询便是不可避免的,下面介绍几种方法来解决此问题。 例(假设):
MySQL根据日期查询数据
查询往前7天的数据: select * from 数据表 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) &amp;lt;= 时间字段 查询往前30天的数据: select * from 数据表 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) &amp;lt;= 时间字段 查询往前3个月的数据: selec...
mybatis分页多条件查询指定时间段数据的sql语句
本案例适用于mysql数据库,在数据库中时间数据类型为datetime。 使用以下sql语句将不会报错,但也得不到想要的结果;      SELECT       a.guide_id,a.pat_id,a.direct_reason,a.sport_direct,a.food_direct,a.drug_suggest,a.guide_time,a.memo,b.name,c.doct
MySQL使用某一条件查询出的数据和另以表中数据进行left jion连接
SELECT user_id, user_name FROM tik_groups_user as a LEFT JOIN tik_user as b ON a.user_id = b.id WHERE a.user_id IN( SELECT user_id FROM tik_groups_user WHERE groups_i...
ThinkPHP数据查询条件及方法的使用
普通查询 #1.字符串形式 //'id'&amp;gt;5 and id&amp;lt;9 在SQL语句当中写的基本形式也是字符串形式 $user=M('user’); $str = “‘id’&amp;gt; 5 and ‘id' &amp;lt;9”; $liset=$user-&amp;gt;where($str)-&amp;gt;select(); #2.数组形式 $user=M('user'); ...
MySql5.6从零开始学之查询数据
一、基本查询语句         select语句基本格式: SELECT {*|&amp;lt;字段列表&amp;gt;} [ FROM &amp;lt;表1&amp;gt;,&amp;lt;表2&amp;gt;... [WHERE &amp;lt;表达式&amp;gt; [GROUP BY &amp;lt;group by definition&amp;gt;] [HAVING &amp;lt;expression&amp;gt; [{&amp;...
mysql根据查询插入数据
insert into sip_users(privilege,type) select privilege,type from sip_users where number="engine";
javaweb之JDBC数据查找
&amp;lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=UTF-8&quot;    pageEncoding=&quot;UTF-8&quot;%&amp;gt;&amp;lt;%@ page import=&quot;java.sql.*&quot; %&amp;gt; &amp;lt;%@ page import=&quot;com.mysql.jdbc.Driver&quot; %&amp;gt;
数据库_基础知识_MySQL_UpdateSelect(根据查询出来的结果批量更新)
有两个表:SPEC1、tmpDOT SPEC1种一列为:HIGH tmpDOT共有两个:OLD、NEW 两个表的内容大概如下: SPEC1: ... HIGH ... ... A    ... ... B    ... ... A    ... ... C    ... ... B    ... ... D    ... tmpDOT: OLD   NEW A
【mysql】根据不同条件查询表中同一字段
需求:需要在一张表中,查询某个店铺05-17和05-10两天的同一个GMV字段数据遇到问题:在测试过程中发现,如果两天中任意一天没有数据,则该店铺整体数据均不显示解决代码:SELECT a.Seller_nick, IFNULL(a.GMV, 0), IFNULL(b.GMV, 0) AS last_gmv FROM ( SELECT
[iOS sql数据库] 根据多个条件delete数据
命令的关键是@"delete from mqttlist where uid = '%@' and indexCount = '0'"@"delete from 表名 where 字段A = '%@' and 字段B = '0'"
【实践记录】Java操作MySQL数据库——不定条件参数查询
引入 在数据库中,经常要实现查询操作,而且查询条件是不断根据实际情况动态变化的,以简书用户为例。假设一个简书用户有以下参数:用户名、个人简介、关注人数、粉丝人数、文章数、字数、收获喜欢数。如果我们的查询条件是用户名为某个值这一个条件、又或者用户名为某个值和关注人数在某一区间这两个条件。通过Java操作的话,我们不可能每种情况都写一个查询方法,最有效的方法...
Mysql的批量操作(批量查询)
前面几篇Mysql的文章一直在写普通查询,从这篇开始,会写一些Mysql的批量操作。 本篇主要是mysql的批量查询,主要是通过id来查询,如果需要查询多个id对应的多个数据,使用for循环去查,对程序来说不太高效。在这里就可以通过批量循环进行查询。 直接上代码: java代码部分:          @Responsebody          @RequestMapping("/XX
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 python查询数据使用教程 学习人工智能的条件