如何在MySQL中平均化日期?

fms*_*msf 21 mysql sql

如何在MySQL中的日期之间取平均值?我对时间值,小时和分钟更感兴趣.

在桌子上:

| date_one   | datetime |
| date_two   | datetime |
Run Code Online (Sandbox Code Playgroud)

做一个像这样的查询:

 SELECT AVG(date_one-date_two) FROM some_table WHERE some-restriction-applies;
Run Code Online (Sandbox Code Playgroud)

编辑:

AVG(date1-date2)作品,但我不知道什么数据被返回.

gah*_*ooa 25

这似乎有点hackish,但将适用于日期〜1970年和2030年(32位拱门).实质上,您将日期时间值转换为整数,对它们求平均值,并将平均值转换回日期时间值.

SELECT
    from_unixtime(
        avg(
            unix_timestamp(date_one)-unix_timestamp(date_two)
        )
    )
FROM
    some_table
WHERE
    some-restriction-applies
Run Code Online (Sandbox Code Playgroud)

那里可能有一个更好的解决方案,但这会让你陷入困境.


小智 8

select avg(datediff(date1,date2))
select avg(timediff(datetime,datetime))
Run Code Online (Sandbox Code Playgroud)