【问题标题】:Java, MySQL or PHP - rounding down minutes to the next 10 minutes [closed]Java、MySQL 或 PHP - 将分钟向下舍入到接下来的 10 分钟 [关闭]
【发布时间】:2015-03-13 12:47:16
【问题描述】:

我想在 10 分钟内舍入当前时间。我可以在 Java、php 或 mysql(最好)上这样做,无论是什么被认为更好的。例如:

08:49:50 -> 08:40:00

14:23:12 -> 14:20:00

09:32:11 -> 09:30:00

12:20:00 -> 12:20:00

我尝试从 Round date to 10 minutes interval 解决,但 mysql 失败了。

【问题讨论】:

  • 要么/要么可以完成这项工作。任君挑选。
  • 第一个让它工作的 - 我会接受它:) 最好是 mysql
  • 难怪 MySQL 在您尝试向它提供 Oracle 过程代码时会失败。您无需复制/粘贴代码,您了解它的作用并使用 MySQL 过程代码自己重现相同的结果。
  • 起初这是一个普遍的语法错误,然后我删除了对时间戳的转换,所以它说 trunc 不是一个可识别的函数

标签: java php mysql datetime rounding


【解决方案1】:

这是来自以下 stackoverflow 帖子的答案:How to round a time to the nearest 15 minute segment

SELECT FROM_UNIXTIME( TRUNCATE(UNIX_TIMESTAMP(NOW()) / 900,0)*900);

感谢 Gavin Towey!

只需将 900(15 分钟)替换为 600(10 分钟)即可。

【讨论】:

    【解决方案2】:
    public static Date roundDown10Min(Date date) {
    
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
    
        int minutes = cal.get(Calendar.MINUTE);
        int roundedMinutes = (minutes/10)*10;
        cal.set(Calendar.MINUTE, roundedMinutes );
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
    
        return cal.getTime();
    
    }
    

    【讨论】:

      猜你喜欢
      • 2011-01-29
      • 1970-01-01
      • 2013-11-17
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2013-07-15
      • 2011-01-12
      相关资源
      最近更新 更多