c# - 如何在 MySQL 中舍入 DateTime?

标签 c# mysql datetime math rounding

我想以 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/

相关文章:

c# - AJAX 请求包含在类文件中的方法

c# - C# 动态改变光标大小

c# - 使用 CSVHelper 从 HttpResponseMessage 解析 CSV

php - $_SERVER ['PHP_SELF' 的问题]

c# - 如何使用 C# 查询 NTP 服务器?

c# - Hangfire:从关键部分内排队后台作业

mysql - 使用 SQL 查询获取每天的第一次和最后一次时间

mysql - 错误代码: 1064 | Delimiter

mysql - sql查询根据时间差添加行

c# - 将时间转换为十进制