2014-09-21 57 views
0

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

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

我的数据库表中的数据类型是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子句,但在此之后,我不知道下一步该怎么做。请帮助我,谢谢。

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列使用索引:

+0

where'order'.date between'yyyy-mm-dd H:i:s'AND'yyyy-mm-dd H:i:s' – 2014-09-21 12:26:05

+0

只是日期怎么样,到现在为止时间并不重要每日报道。 @Undefined_variable – geds13 2014-09-21 12:32:30

+0

在'yyyy-mm-dd'和'yyyy-mm-dd'之间使用日期(orders.date) – 2014-09-21 12:34:00

回答

1

,你可以表达查询。一个更好的表示是:

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表的有效链接,那么您的数据库设计不正确。另外,你想过滤第二个表,这会将外连接变成内连接。