Mysql基于时间戳循环数据库?

时间:2014-05-19 15:00:17

标签: php mysql unix-timestamp

在我的数据库中,我根据Unix时间戳将订单存储为entryDate。我想制作一个简单的HTML图表,显示给定日期的订单数量。但这听起来更为震撼(至少对我而言)。

如何根据unix时间戳循环访问我的数据库?那么如何获得当天的订单总数?我得到的最好的是:

SELECT COUNT(id) 
FROM customers_orders 
WHERE entryDate >= NOW() - INTERVAL 7 DAY
AND status != 99 AND totalprice > 0 AND importId = 0

对于TODAY的订单,我使用:

SELECT COUNT(id) FROM customers_orders WHERE DATE_FORMAT(FROM_UNIXTIME(`entryDate`), '%Y-%m-%d') = CURDATE() AND status != 99

最终结果应该是简单的:

<table>
<tr>
    <td><?= $objStats->numMonday; ?></td>
    <td>Monday</td>
</tr>
<tr>
    <td><?= $objStats->numTuesday; ?></td>
    <td>Tuesday</td>
</tr>
<tr>
    <td><?= $objStats->numWednesday; ?></td>
    <td>Wednesday</td>
</tr>
<tr>
    <td><?= $objStats->numThursday; ?></td>
    <td>Thursday</td>
</tr>
<tr>
    <td><?= $objStats->numFriday; ?></td>
    <td>Friday</td>
</tr>
<tr>
    <td><?= $objStats->numSaturday; ?></td>
    <td>Saturday</td>
</tr>
<tr>
    <td><?= $objStats->numSunday; ?></td>
    <td>Sunday</td>
</tr>                                                                                                                           
</table>

1 个答案:

答案 0 :(得分:0)

DATE(entryDate)为您提供时间戳的YYYY MM DD部分,并将您的查询分组。

SELECT COUNT(id), DATE(entryDate)
FROM customers_orders 
WHERE entryDate >= NOW() - INTERVAL 7 DAY
AND status != 99 AND totalprice > 0 AND importId = 0
GROUP BY DATE(entryDate)