我不明白!我想在数据库中的以下输入字段下创建一个查询... 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 proplem面前......当我尝试用作日常交通时,我该怎么做到最好?
2014-01-26:xx traffic 2014-01-27:xx traffic 2014-01-28:xx traffic
<?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'];
?>
答案 0 :(得分:3)
你可以尝试
SELECT SUM (bytes) AS total FROM acct_v4 WHERE DAY(stamp_updated) = 28;
答案 1 :(得分:0)
如果没有看到你的SHOW CREATE TABLE,看起来就好像你今天的日期是28。你应该使用MySQL的DAY功能。这假定stamp_updated
是正确的DATE或DATETIME字段。
$qry = "SELECT SUM (bytes) AS total FROM acct_v4 WHERE DAY(stamp_updated) = 28";
答案 2 :(得分:0)
你的SUBSTRING (stamp_updated, 9,10)
将在第9位后返回10个字符
- &GT; 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' ";