显示特定日期的数据php

时间:2014-09-21 12:24:04

标签: php mysql sql

我想显示特定日期的数据,例如,一天的总收入,或一周的总收入等等。

我不知道怎么做,我只创建了一个显示总数的查询,但我还需要它来显示特定的日期。正如我上面所说的那样。

数据库表中的数据类型为TIMESTAMP,格式为2014-08-28 04:08:23。

这是我的查询。

$qry = "SELECT sum(order_detail.quantity*order_detail.price) as chenes, orders.date 
        FROM order_detail 
        LEFT JOIN orders 
        ON order_detail.orderid=orders.serial";

我知道我会使用WHERE子句但在那之后,我不知道接下来该做什么。请帮帮我谢谢。

1 个答案:

答案 0 :(得分:1)

您可以将查询表达为:

SELECT sum(od.quantity*od.price) as chenes, o.date 
FROM order_detail od JOIN
     orders o
ON od.orderid = o.serial
WHERE date(o.date) = YOURDATEHERE

但是,这种格式使MySQL很难在date列上使用索引。更好的代表是:

SELECT sum(od.quantity*od.price) as chenes, o.date 
FROM order_detail od JOIN
     orders o
ON od.orderid = o.serial
WHERE o.date >= YOURDATEHERE and o.date < YOURDATEHERE + interval 1 day;

这将允许MySQL利用date上的索引。

请注意,我已将left join更改为join。如果order_detail记录没有到order表的有效链接,那么您的数据库设计会很糟糕。此外,您希望在第二个表上进行过滤,这会将外部联接转换为内部联接。