我想以 5 分钟的分辨率离散化 DateTime。我是用 C# 做的,但是如何将下面的代码转换成 MySQL?
DateTime Floor(DateTime dateTime, TimeSpan resolution)
{
return new DateTime
(
timeSpan.Ticks *
(long) Math.Floor
(
((double)dateTime.Ticks) /
((double)resolution.Ticks)
)
);
}
最佳答案
当您使用日期时间数据类型时,这有点令人讨厌;存储函数的一个很好的候选者。
DATE_SUB(DATE_SUB(time, INTERVAL MOD(MINUTE(time),5) MINUTE ),
INTERVAL SECOND(time) SECOND)
使用 UNIXTIME 时间戳会更容易,但仅限于 1970 - 2038 日期范围。
FROM_UNIXTIME(UNIX_TIMESTAMP(time) - MOD(UNIX_TIMESTAMP(time),300))
祝你好运。
关于c# - 如何在 MySQL 中舍入 DateTime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1921362/