php - 显示特定日期的PHP数据

标签 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 子句,但在那之后,我不知道下一步该做什么。请帮助我谢谢。

最佳答案

您可以将查询表达为:

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 利用日期上的索引。

请注意,我将左连接更改为连接。如果 order_detail 记录没有到 order 表的有效链接,那么数据库设计就会很糟糕。此外,您希望对第二个表进行过滤,这无论如何都会将外部联接转变为内部联接。

关于php - 显示特定日期的PHP数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25959124/

相关文章:

php - 停止 WordPress 从 301 重定向/index.php 到/

PHP Mysql 总是需要返回 5 行,即使表中有 3 行

sql - 同时执行的查询出现死锁

javascript - 选择后立即上传图片

php - 在 Symfony 中,将数组放置在何处用于公共(public)数据存储

MySQL从字符串中选择字段

php - db_select 当列名是 mysql 关键字时

mysql - 如何在 MySQL 中获取行位置?

来自 Oracle 中 dblink 等待事件的 SQL*Net 消息

php mailer 5.2.23 通过composer安装