【问题标题】:PHP MySQL WHERE SUM WHERE SUBSTRINGPHP MySQL WHERE SUM WHERE SUBSTRING
【发布时间】:2014-01-28 16:42:38
【问题描述】:

我有些不明白!我想在数据库中的以下条目字段 stamp_updated, 2014-01-28 17:31:02 下创建一个查询。

现在我只想拥有标签为 28 的记录:

$ qry = "SELECT SUM (bytes) AS total FROM acct_v4 WHERE SUBSTRING (stamp_updated, 9,10) = '28 '";

很遗憾,我没有得到任何输出,是 SUBSTRING 吗?

PS: 应该是什么:我记录了端口流量,让他写在一个数据库中,并希望有每天的统计数据。

问新的

现在我站在 logig 问题的前面......当我尝试将其作为日常流量花费时,我应该如何做到最好?

2014-01-26:xx 流量 2014-01-27:xx 流量 2014-01-28:xx 流量

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>
<?php 

function formatBytes($size, $precision = 2)
{
    $base = log($size) / log(1024);
    $suffixes = array('', 'k', 'MB', 'GB', 'TB');   

    return round(pow(1024, $base - floor($base)), $precision) . $suffixes[floor($base)];
}


$db=mysql_connect("localhost","traffic","....."); 
mysql_select_db("traffic",$db);
$qry = "SELECT SUM(bytes) AS total FROM acct_v4 
          WHERE SUBSTRING(stamp_updated,9,2) = '28' ";


$select = mysql_query($qry);
$result = mysql_fetch_array($select);


echo 'Summe: '.formatBytes($result['total']);  
//echo $result['total'];


?>

【问题讨论】:

  • stamp_updated 的列定义是什么?

标签: php mysql sum substring where-clause


【解决方案1】:

你可以试试

SELECT SUM (bytes) AS total FROM acct_v4 WHERE DAY(stamp_updated) = 28;

【讨论】:

  • 这应该可以工作,假设该字段设置为时间戳而不是字符串。
  • 将日期时间存储为字符串是一个糟糕的计划,因为您会丢失很多此功能。 DAY() 函数正是您所需要的。
【解决方案2】:

您的SUBSTRING (stamp_updated, 9,10) 将在位置 9 之后返回 10 个字符

-->28 17:31:0

这是SUBSTRING的基础

 SUBSTRING(str, pos, len)

所以在您的情况下,您应该像这样将 10 更改为 2

  SUBSTRING (stamp_updated, 9,2)

它会起作用的 您的整个查询将是

 $ qry = "SELECT SUM(bytes) AS total FROM acct_v4 
          WHERE SUBSTRING(stamp_updated,9,2) = '28' ";

【讨论】:

  • 谢谢现在我也理解了SUBSTRING
【解决方案3】:

没有看到您的 SHOW CREATE TABLE,看起来您好像是在当天 28 的日期之后。您应该使用 MySQL 的 DAY 函数。这假定 stamp_updated 是正确的 DATE 或 DATETIME 字段。

$qry = "SELECT SUM (bytes) AS total FROM acct_v4 WHERE DAY(stamp_updated) = 28";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    • 2014-09-16
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 2014-09-21
    相关资源
    最近更新 更多