mysql 星座_mysql 查询年龄段,星座以及最近7天生日的sql
1、查询年龄段
小于20
//查询小于20岁的人的个数,DATE_FORMAT(birthday, '%Y')其中的birthday就是数据库的生日这个date类型字段
String hql20="SELECT id, birthday,DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(birthday, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(birthday, '00-%m-%d')) AS age from hrd_staff where status=? and company=? group by id having age< ?";
List list20=staffService.findBySql(hql20, status,company,20);
大于等于20 小于25
//25
String hql30="SELECT id, birthday,DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(birthday, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(birthday, '00-%m-%d')) AS age from hrd_staff where status=? and company=? group by id having age >=? and age";
List list30=staffService.findBySql(hql30, status,company,20,25);
2、查询星座
( DATE_FORMAT(birthday,'%m-%d') 其中的birthday就是数据库中的生日字段
// #摩羯座
String moxie = "select id,birthday from hrd_staff where ( ( DATE_FORMAT(birthday,'%m-%d')>'12-22' and DATE_FORMAT(birthday,'%m-%d')'01-01' and DATE_FORMAT(birthday,'%m-%d')
// # 射手座
String sheshou = "select id,birthday from hrd_staff where DATE_FORMAT(birthday,'%m-%d') >'11-23' and DATE_FORMAT(birthday,'%m-%d')
// #天蝎座
String tianxie = "select id,birthday from hrd_staff where DATE_FORMAT(birthday,'%m-%d') >'10-24' and DATE_FORMAT(birthday,'%m-%d')
// #天秤座
String tianchegn = "select id,birthday from hrd_staff where DATE_FORMAT(birthday,'%m-%d') >'09-23' and DATE_FORMAT(birthday,'%m-%d')
// #处女座
String chunv = "select id,birthday from hrd_staff where DATE_FORMAT(birthday,'%m-%d') >'08-23' and DATE_FORMAT(birthday,'%m-%d')
// #狮子座
String shizi = "select id,birthday from hrd_staff where DATE_FORMAT(birthday,'%m-%d') >'07-23' and DATE_FORMAT(birthday,'%m-%d')
// #巨蟹座
String juxie = "select id,birthday from hrd_staff where DATE_FORMAT(birthday,'%m-%d') >'06-22' and DATE_FORMAT(birthday,'%m-%d')
// #双子座
String shuangzi = "select id,birthday from hrd_staff where DATE_FORMAT(birthday,'%m-%d') >'05-21' and DATE_FORMAT(birthday,'%m-%d')
// #金牛座
String jinniu = "select id,birthday from hrd_staff where DATE_FORMAT(birthday,'%m-%d') >'04-20' and DATE_FORMAT(birthday,'%m-%d')
// #白羊座
String baiyang = "select id,birthday from hrd_staff where DATE_FORMAT(birthday,'%m-%d') >'03-21' and DATE_FORMAT(birthday,'%m-%d')
// #双鱼座
String shaugnyu = "select id,birthday from hrd_staff where DATE_FORMAT(birthday,'%m-%d') >'02-19' and DATE_FORMAT(birthday,'%m-%d')
// #水瓶
String shuipin = "select id,birthday from hrd_staff where DATE_FORMAT(birthday,'%m-%d') >'01-20' and DATE_FORMAT(birthday,'%m-%d')
3、最近7天生日的sql
int bwt=7;
//现在日期
String nowdate=DateUtil.getNow();
// 截取月日
String wnowdate=nowdate.substring(5, 10);
//获取7天后的日期
String after=DateUtil.getAfterDay(new Date(), bwt);
//截取月日
String wafter=after.substring(5, 10);
//截取月 判断是否是跨年,如果跨年则月份有可能会小于之后几天的 就比如 12.28 七天后就是01.04 这样就是月份很小了
String ny=wnowdate.substring(0,2);
String ay=wafter.substring(0,2);
int iny=Integer.valueOf(ny);
int iay=Integer.valueOf(ay);
//跨年查询
String y12="12-31";
String y1="01-01";
// 跨年查询,因为是生日,之和月份和日期有关和年没关系
if(iny>iay){
//跨年查询sql
hql+=" and ((DATE_FORMAT( birthday , '%m-%d') > '"+wnowdate+"' and DATE_FORMAT( birthday , '%m-%d') <= '"+y12+"') or (DATE_FORMAT( birthday , '%m-%d') >= '"+y1+"' and DATE_FORMAT( birthday , '%m-%d') < '"+wafter+"'))";
}else{
//正常查询sql
hql+=" and DATE_FORMAT( birthday , '%m-%d') > '"+wnowdate+"' and DATE_FORMAT( birthday , '%m-%d') < '"+wafter+"'";
}
4、获取两个日期间的天数
/**
* 两个时间参数,月 日之间的天数
* @param min
* @param max
* @return
*/
public static int days(Date min,Date max){
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
//获取日期
String s1=sdf.format(min);
String s2=sdf.format(max);
//截取月份
String mm1=s1.substring(5, 7);
String mm2=s2.substring(5, 7);
//截取日期
String dd1=s1.substring(8, 10);
String dd2=s2.substring(8, 10);
//月份
int intmm1=Integer.valueOf(mm1);
int intmm2=Integer.valueOf(mm2);
//日期
int intdd1=Integer.valueOf(dd1);
int intdd2=Integer.valueOf(dd2);
int days=0;
// 吧下面的 DAY_OF_YEAR 改为 DAY_OF_MONTH 因为每年的日期不同所以不同年的同一个月的时间不一样
if(intmm1
Calendar aCalendar = Calendar.getInstance();
aCalendar.setTime(min);
int day1 = aCalendar.get(Calendar.DAY_OF_YEAR);
aCalendar.setTime(max);
int day2 = aCalendar.get(Calendar.DAY_OF_YEAR);
days= day2-day1;
}else if(intmm1==intmm2){
if(intdd2>intdd1){
Calendar aCalendar = Calendar.getInstance();
aCalendar.setTime(min);
int day1 = aCalendar.get(Calendar.DAY_OF_MONTH);
aCalendar.setTime(max);
int day2 = aCalendar.get(Calendar.DAY_OF_MONTH);
days= day2-day1;
}else{
Calendar aCalendar = Calendar.getInstance();
aCalendar.setTime(max);
int day1 = aCalendar.get(Calendar.DAY_OF_MONTH);
aCalendar.setTime(min);
int day2 = aCalendar.get(Calendar.DAY_OF_MONTH);
days= day2-day1;
}
}else{
Calendar aCalendar = Calendar.getInstance();
aCalendar.setTime(max);
int day1 = aCalendar.get(Calendar.DAY_OF_YEAR);
aCalendar.setTime(min);
int day2 = aCalendar.get(Calendar.DAY_OF_YEAR);
days= day2-day1;
}
//System.out.println("s1:"+s1 +" s2:"+s2 +" days:"+days);
return days;
} 这个时间就只能这样笨办法写了在这里也看到了一篇文章:https://my.oschina.net/u/1454838/blog/750356
mysql 星座_mysql 查询年龄段,星座以及最近7天生日的sql相关推荐
- mysql 执行查询_MySQL查询的执行过程
我们总是希望MySQL能够获得更高的查询性能,最好的办法是弄清楚MySQL是如何优化和执行查询的.一旦理解了这一点,就会发现:很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的 ...
- mysql查询字段不为数字_MySQL查询指定字段不是数字与逗号的sql
核心sql语句 MySQL查询不包含数字的语句: SELECT * FROM test WHERE `name` regexp '[^0-9]'; MySQL查询纯数字的语句: SELECT * FR ...
- 查看MySQL句柄_mysql查询语句-handler
1 简介 mysql除可使用select查询表中的数据,也可使用handler语句,这条语句使我们能够一行一行的浏览一个表中的数据,不过handler语句并不具备select语句的所有功能.它是mys ...
- mysql 交集_MySQL 查询结果取交集的实现方法
1 MySQL中如何实现以下SQL查询 (SELECT S.Name FROM STUDENT S, TRANSCRIPT T WHERE S.StudId = T.StudId AND T.CrsC ...
- 查mysql结构_Mysql查询架构信息
今天想给整个数据库做初始化,也就是清空所有表,然后让索引归零,使用truncate table 就可以,但好多张表,怎么批量搞定呢? 有人说重建表吧,dump一下,然后再重建,但我还是想用trunca ...
- php嵌套查询mysql语句_mysql 查询嵌套
问题描述 为使讨论简单易懂,我将问题稍作简化,去掉诸多的背景. 从前有一个皇帝,他有50个妃子,这些妃子很没有天理的给他生了100,000个儿子,于是,皇帝很苦恼,海量的儿子很难管理,而且,他想知道每 ...
- mysql 留存率_mysql查询用户留存语法(用户留存和用户留存率问题)
1.创建表 CREATE TABLE `user_log` ( `device_id` varchar(11) CHARACTER SET latin1 COLLATE latin1_swedish_ ...
- mysql前一天_mysql查询当天,前一天,一周,一个月
最近一个月 SELECT * FROM table WHERE DATE_SUB(CURDATE(), INTERVAL 1 MONTH) <= date(time); 本月.当前月 SELEC ...
- mysql 通知_mySql查询-系统公告发布接收人情况
-- display_name NZ分部所有用户 SELECT user_code,display_name FROM scy_user WHERE ou_id=1627 AND is_deleted ...
最新文章
- Aria2打造属于自己的下载神器
- 魏少军谈AI芯片热潮和架构创新 透露清华Thinker芯片将独立融资
- Android学习:自定义ViewGroup方法总结
- 自定义控件的时候为控件增加事件
- html5 数据验证,【译】表单数据校验
- ffmpeg-简单AES加解密记录
- 【学习笔记】第二章——管程(解决生产者消费者问题、封装、Java 体现)
- centos的防火墙配置
- PictureBox滚动条、鼠标中轴滚动
- jq数组清空_JQuery 数组获取和删除元素
- python办公软件教程书籍_针对office办公软件初学者有什么推荐书籍?
- python源代码怎么用_Python写完代码怎么用
- DeeCamp 2019 Exam A 纪实
- 发红包的程序代码java_Java实现微信发红包
- shell-脚本入门
- 二进制以上的计算机,计算机中的二进制
- 网上如何赚钱?教你利用知识变现来赚钱!
- 模糊神经网络(三)模糊逻辑和神经网络的对比
- 为什么公司宁可高薪招一个新员工,也不愿意给老程序员涨一点工资?
- 语言库函数大全--资料收集整理