2014-09-21 108 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表的有效鏈接,那麼您的數據庫設計不正確。另外,你想過濾第二個表,這會將外連接變成內連接。