Mysql日期查询在很多地方都有使用。如果不处理,就会找到毫秒数。虽然java可以处理,但总会浪费时间,所以我特意想总结一些日期查询相关的方法,方便以后使用。
第一种:用DATE_FORMAT在sql中格式化,结果直接就是你设置的格式。
SELECT DATE _ FORMAT(t . create _ time,’% Y-% c-% d % H:% I:% s ’) ‘日期’从电子邮件接受测试
我得到的是: 2018-12-08 16: 36: 47
第二:如果是s***项目,在对应的pojo上添加@JsonFor***t注释就可以得到想要的结果。
/* *创建时间*/
@ JSON for***t(locale = ”zh & # 8221,时区= ”GMT+8 ″,模式= ”yyyy-MM-DD HH:MM:ss ”)
@ table field(value = ”create _ time & # 8221)
私人日期创建时间;
这个方法需要在***ven中添加下面的代码
& lt依赖性& gt
& ltgroupId & gtcom . faster XML . Jackson . core </groupId >
& ltartifactId & gt杰克逊数据绑定& lt/artifact id >
& lt版本& gt2 . 9 . 2 </version >
& lt/dependency >
第三种:查询当前日期的常用sql。
SELECT DATE_SUB(CURDATE(),间隔0天);
结果:2018年12月19日
立即选择();
结果:2018-12-19 22:11:53
SELECT CURDATE();
结果:2018年12月19日
昨日查询:2018年12月18日
SELECT DATE_SUB(CURDATE(),间隔1天);
明天查询:2018年12月19日
SELECT DATE_SUB(CURDATE(),间隔-1天);
查询前一小时:2018-12-19 21:19:10
SELECT DATE_SUB(NOW(),间隔1小时);
查询后一小时:2018-12-19 21:19:10
SELECT DATE_SUB(NOW(),INTERVAL -1小时);
查询前一分钟:2018-12-19 22:19:08
SELECT DATE_SUB(NOW(),间隔1分钟);
查询前一年:2017-12-19 22:19:08
SELECT DATE_SUB(NOW(),间隔1年);
第四:查询时间段时,一定要确定是比较年、月、日还是时间、分、秒
select * from test where date _ for***t(create _ time,’% Y-% m-% d ’)之间‘2018-07-30’还有‘2018-07-31’;
第五种:常用的数据查询如今天、昨天、最近几天、一个月、一个季度等。
这一段指的是:
https://***.cnblogs.com/benefitworld/p/5832897.html.
今天
Select * from表名where to_days(时间字段名称)= to _ days(now());
昨天
SELECT * FROM表名WHERE TO _ DAYS(NOW())–TO_DAYS(时间字段名称)<>
将近7天
SELECT * FROM表名,其中date _ sub (curdate(),interval 7day)
将近30天
SELECT * FROM表名,其中date _ sub (curdate(),间隔30天)
这个月
SELECT * FROM表名WHERE DATE_FORMAT(时间字段名称,‘% Y % m & # 8217)= DATE_FORMAT( CURDATE(),‘% Y % m & # 8217)
去年一月
SELECT * FROM表名where period _ diff(date _ for***t(now(),‘% Y % m & # 8217),date_for***t(时间字段名,‘% Y % m & # 8217) ) =1
查询本季度的数据
select * from ` ht _ invoice _ infor***tion `其中QUARTER(create _ date)= QUARTER(now());
查询上一季度的数据
select * from ` ht _ invoice _ infor***tion `其中QUARTER(create _ DATE)= QUARTER(DATE _ SUB(now(),间隔1个季度));
查询今年的数据
select * from ` ht _ invoice _ infor***tion `其中YEAR(create _ date)= YEAR(NOW());
查询去年的数据
select * from ` ht _ invoice _ infor***tion `其中year(create _ date)= year(date _ sub(now(),间隔1年));
查询本周数据
SELECT name,submit time FROM enterprise WHERE year week(date _ for***t(submit time,’% Y-% m-% d ’))= year week(now());
查询上周的数据
SELECT name,submit time FROM enterprise WHERE year week(date _ for***t(submit time,’% Y-% m-% d ’))= year week(now())-1;
查询上个月的数据
select name,submit time from enterprise where date _ for***t(submit time,’% Y-% m ’)=date_for***t(DATE_SUB(curdate(),间隔1个月),’% Y-% m ’)
select * from user where DATE _ FORMAT(pudate,’% Y % m & # 8217)= DATE_FORMAT(CURDATE(),’% Y % m & # 8217) ;
select * from用户where WEEKOFYEAR(FROM _ UNIXTIME(pudate,’% y-% m-% d ’))= WEEKOFYEAR(now())
select * from用户where MONTH(FROM _ UNIXTIME(pudate,’% y-% m-% d ’))=月(现在())
select * from用户where YEAR(FROM_UNIXTIME(pudate,’% y-% m-% d ’))=年(now())和月(FROM_UNIXTIME(pudate,’% y-% m-% d ’))=月(现在())
Select * from user where pudate介于上月最后一天和下月第一天之间
查询当月数据
select name,submit time from enterprise where date _ for***t(submit time,’% Y-% m ’)=date_for***t(now(),’% Y-% m ’)
查询从现在起6个月的数据
select name,submit time from enterprise where submit time between date _ sub(now(),间隔6个月)and now();
本文来自MR.特别人士投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/521583.html