Mysql查询前一天的数据及对时间格式的操作
2022/1/12 19:05:27
本文主要是介绍Mysql查询前一天的数据及对时间格式的操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
数据库表
业务场景:我们需要展示除当天以外的所有日期的aqi平均值,保留小数点后两位,时间是字符串类型,城市是固定的一个,不考虑加入到where条件。
代码如下:
public void reaTimeLevel() { Ret result = Ret.ok("state", "ok"); List<Record> dataList = Db.use("upms").find("select sum(aqi)/24 as saqi,str_to_date(date,'%Y%m%d ') as date,year(str_to_date(date,'%Y%m%d ')) as ayear,LPAD(month(str_to_date(date,'%Y%m%d')),2,0)asamonth,LPAD(day(str_to_date(date,'%Y%m%d ')),2,0) as aday from td_atomsphere where str_to_date(date,'%Y%m%d ') < date_sub(now(),INTERVAL 1 day) group by date"); //now(),INTERVAL 1 day 0表示当天 1表示前一天 //LPAD(参数,长度,补什么)可以在截取的单数日期比如8补为08 List<Record> recordList = new ArrayList<>(); for (Record record : dataList) { List<String> months = new ArrayList<>(); List<String> days = new ArrayList<>(); List<String> years = new ArrayList<>(); Double avg = Double.valueOf(record.getStr("saqi")); avg = (double) Math.round(avg * 100) / 100;//保留小数点后两位 months.add(record.getStr("amonth")); days.add(record.getStr("aday")); years.add(record.getStr("ayear")); Record data = new Record(); data.set("months", months); data.set("days", days); data.set("years", years); data.set("avgs", avg); recordList.add(data); } renderJson(Co.ok("data", result.set("data", recordList))); }
需要用到的知识点:
一、Mysql中字符串转日期:
select str_to_date(date,'%Y%m%d ') date 日期 varchar '%Y%m%d ' 转化为日期的格式
二、日期截取年月日:
year(日期) as ayear 表示 截取月月日中的年
三、补全日期,比如1月 改成01月 9日改为09日 即单数的月,日要补0:
LPAD(参数,长度,补什么)可以在截取的单数日期比如8补为08
四、核心知识点---- 查询出当天以外的数据:
select xxx from 表名 where 日期 < date_sub(now(),INTERVAL 1 day)
date_sub(now(),INTERVAL 1 day) 1 表示的日期是前一天 0 表示当天 now() 现在的时间戳
五、保留小数点后两位:
Double avg = 23.375
(double) Math.round(avg * 100) / 100 结果 为 23.38
关于小数点保留问题 参考文献 Java中Double保留后小数位的几种方法 - 的川 - 博客园
这篇关于Mysql查询前一天的数据及对时间格式的操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-02MySQL 3主集群搭建
- 2024-12-25如何部署MySQL集群资料:新手入门教程
- 2024-12-24MySQL集群部署资料:新手入门教程
- 2024-12-24MySQL集群资料详解:新手入门教程
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解