试图每15分钟计算一次

时间:2016-11-01 15:16:55

标签: mysql str-to-date

在旧数据库中,日期列存储为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>";
}

1 个答案:

答案 0 :(得分: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

有时尺寸很重要:)