【问题标题】:Trying to get a group count per 15 minutes尝试每 15 分钟计算一次组数
【发布时间】:2017-03-14 18:23:45
【问题描述】:

在旧数据库中,日期列存储为 12-10-2012 15:20:36。我需要在 15 分钟的时间内知道使用情况。我从这里获取了部分信息,但下面的这个脚本给了我零结果。我错过了什么?

$stats = mysql_query("SELECT
    count(id) as count,
    CASE 
        WHEN minute(STR_TO_DATE(datum, '%d-%m-%Y %h:%i:%s')) BETWEEN 0 and 14 THEN '00'
        WHEN minute(STR_TO_DATE(datum, '%d-%m-%Y %h:%i:%s')) BETWEEN 15 and 29 THEN '15'
        WHEN minute(STR_TO_DATE(datum, '%d-%m-%Y %h:%i:%s')) BETWEEN 30 and 44 THEN '30'
        WHEN minute(STR_TO_DATE(datum, '%d-%m-%Y %h:%i:%s')) BETWEEN 45 and 59 THEN '45'
    END AS intervals
FROM errors
GROUP BY intervals");
while($stat = mysql_fetch_object($stats)) {
    echo $stat->intervals." - ".$stat->count."<br>";
}

【问题讨论】:

  • 你跑过select STR_TO_DATE(datum, '%d-%m-%Y %h:%i:%s') from errors,输出看起来是否合理?
  • 嗯,刚刚做了,完全没有,我只得到了空格...

标签: mysql str-to-date


【解决方案1】:

尝试使用%d-%m-%Y %H:%i:%s 而不是%d-%m-%Y %h:%i:%s%H 将接受 0-23 作为小时值。

SELECT STR_TO_DATE( '12-10-2012 15:20:36', '%d-%m-%Y %H:%i:%s' ) 将返回 12-10-2012 15:20:36

SELECT STR_TO_DATE( '12-10-2012 15:20:36', '%d-%m-%Y %h:%i:%s' ) 将返回 NULL

有时大小很重要:)

【讨论】:

  • 啊……花了我一个小时,我忽略了它……嗯,它现在正在运行,谢谢!
猜你喜欢
  • 2019-02-21
  • 2021-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-09
  • 1970-01-01
相关资源
最近更新 更多