mysql - 如何从 DATE(不是日期时间、时间戳)获取 AVG 并返回 DATE(不是日期时间、时间戳)
问题描述
我正在用 java 编写代码,它使用 mySQL 数据库中的 DATE 列。
我想从 DATE 列中获取平均值,但是:
-avg(date_col) 返回的不是日期 yyyy-mm-dd 而是某种“奇怪”的数字,
我阅读了很多堆栈主题“从日期获取平均值”,但每个人都使用时间戳或日期时间(不是日期)......而且我尝试的所有内容都不适合我。
总而言之...我必须从 DATE 列中获取平均值,这会返回“yyyy-mm-dd”,因为我的程序正在下面的 etap 中解析它。
我怎么才能得到它?
解决方案
将日期转换为 unixtime,取平均值并转换回日期时间:
select cast(from_unixtime(avg(unix_timestamp(dt))) as date)
from data;
Unixtime 只是从 1970-01-01 过去的秒数,因此它是一个整数,您可以从中计算平均值。
推荐阅读
- python - 为什么 Django 表单选择字段不显示所选模型的初始值
- java - 为 Java RMI 动态注册类
- assembly - 英特尔语法汇编中的 EXTRN 是什么?
- django - 如何添加 dj_rest_auth 包的自定义用户字段
- mongodb - libPocoMongoDB.so.71:无法打开共享对象文件:没有这样的文件或目录
- node.js - 如何在 nodejs 中的 typeorm 上附加 xray?
- python - 使用子进程激活 conda 环境
- c++ - 如何多次调用具有不同参数的函数成员?
- reactjs - 在 React 中为您的产品创建新构建是否可以?
- modelica - 初始化系统结构单一