MySql查询生日的两种方式

需要是要查询日期段内过生日的会员,分为两种情况:

1. 不跨年

例如: 查询2017-01-01到2017-01-20之间过生日的会员  (假定今天是2017-01-01则这种也可以描述为20天内过生日的会员)

select * from user where DATE_FORMAT(birthday,‘%m-%d‘) between ‘01-01‘ and ‘01-20‘

2. 跨年

例如: 查询2017-12-27到2018-01-05之间过生日的会员, (假定今天是2017-12-27则这种也可以描述为10天内过生日的会员)

这里取今年的起始时间与今年的最后一天做为1组条件,2017-12-27到2017-12-31; 取下年的第一天到下年的结束做为1组条件:2018-01-01到2018-01-05

select * from user where (DATE_FORMAT(birthday,‘%m-%d‘) between ‘12-27‘ and ‘12-31‘ OR DATE_FORMAT(birthday,‘%m-%d‘) between ‘01-01‘ and ‘01-05‘ )

分析了两种查询生日的情况, 还有一种情况是闰年生日的情况,留到下次再说.

抛砖引玉,大家有好的方案欢迎交流.

原文地址:https://www.cnblogs.com/yqyongqing/p/8127855.html

时间: 2024-08-26 17:39:37

MySql查询生日的两种方式的相关文章

MySQL数据库授权的两种方式

MySQL数据库授权的两种方式 方法一:通过grant命令创建用户并授权 grant命令简单语法如下: grant all privileges on dbname.* to [email protected] identified by 'passwd'; 列表说明如下: 说明:上述命令是授权localhost主机上通过用户username管理dbname数据库的所有权限,密码是passwd.其中,username,dbname,passwd可根据业务的情况修改. 举例:创建zd用户,对tes

mysql级联更新的两种方式:触发器更新和外键

1.mysql级联更新有两种方式:触发器更新和外键更新. 2.触发器更新和外键更新的目的都是为了保证数据完整性. 我们通常有这样的需求:删除表Table 1中记录,需要同时删除其它表中与Table 1有关的若干记录. 举个例子: 现有2个实体- 麻将机 学生.课程,1种联系- 成绩 分别创建 学生表 students, 课程表course,成绩表score --创建 学生表 students CREATE TABLE IF NOT EXISTS `students` ( `id` int(11)

网络协议 finally{ return问题 注入问题 jdbc注册驱动问题 PreparedStatement 连接池目的 1.2.1DBCP连接池 C3P0连接池 MYSQL两种方式进行实物管理 JDBC事务 DBUtils事务 ThreadLocal 事务特性 并发访问 隔离级别

1.1.1 API详解:注册驱动 DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用 原因有2个: >导致驱动被注册2次. >强烈依赖数据库的驱动jar 解决办法: Class.forName("com.mysql.jdbc.Driver"); 1.1.2 API详解:java.sql.Statement接口: 操作sql语句,并返回相应结果 String sql = "某SQL语句&qu

关于Mysql删除表数据的两种方式对比

1.delete from table_name 一行一行删除,只删除表数据,auto_increament仍停留在最后一天数据的下一个值. 2.truncate table_name 快捷删除表数据.先删除整个表,然后重新建表结构.auto_increament从1开始. 关于Mysql删除表数据的两种方式对比,布布扣,bubuko.com

不停止MySQL服务增加从库的两种方式

转载自:http://lizhenliang.blog.51cto.com/7876557/1669829 现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库.前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作. 一般在线增加从库有两种方式,一种是通过mysqldump备份主库,恢复到从库,mysqldump是逻辑备份,数据量大时,备份速度会很慢,锁表的时间也会很长.另一种是通过xtrabackup工具

不停止 MySQL 服务增加从库的两种方式

不停止 MySQL 服务增加从库的两种方式 提交 我的评论 加载中 已评论 不停止 MySQL 服务增加从库的两种方式 2015-07-12 数据库开发 数据库开发 数据库开发 微信号 DBDevs 功能介绍 分享数据库相关技术文章.教程和工具,另外还包括数据库相关的工作.偶尔也谈谈程序员人生 :) (点击上方蓝字,快速关注我们) 作者:李振良 网址:http://lizhenliang.blog.51cto.com/7876557/1669829 现在生产环境MySQL数据库是一主一从,由于业

MongoDB的使用学习之(七)MongoDB的聚合查询(两种方式)附项目源码

先来张在路上-- 此项目是用Maven创建的,没有使用Maven的,自己百度.谷歌去:直接用Junit测试就行,先执行里面的save方法,添加10000条测试数据提供各种聚合查询等. 废话不多说,上干货-- 一.MongoDB数据库的配置(mongodb.xml) 以下是我自己的配置,红色字体请改为自己本机的东东,你说不懂设置端口,不会创建数据库名称,不会配置用户名密码,那有请查阅本系列的第4节(MongoDB的使用学习之(四)权限设置--用户名.密码.端口==),你说懒得设置,那就@#¥%--

Mysql存储emoji表情的两种方式

最近在做数据迁移,原先有一个字段的类型为clob,迁移后的字段类型为varchar,blob转化成字符串数据后,发现有emoji表情存在,导致数据迁移失败.失败的原因是mysql数据库中设置的utf-8类型是3个字节,而emoji表情的utf-8是4个字节,所以无法传入. 要使mysql能存储emoji表情,需要数据库的版本在5.5以上. 为了解决问题,主要有两种方式: 第一种方式是修改字段的编码. 第二种方式是修改配置文件. 第一种方式:亲测可用 1)修改对应表字段的编码类型 ALTER TA

不停止MySQL服务增加从库的两种方式【转载】

现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库.前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作. 一般在线增加从库有两种方式,一种是通过mysqldump备份主库,恢复到从库,mysqldump是逻辑备份,数据量大时,备份速度会很慢,锁表的时间也会很长.另一种是通过xtrabackup工具备份主库,恢复到从库,xtrabackup是物理备份,备份速度快,不锁表.为什么不锁表?因为自身会监控主库日