查找天数以递增方式显示

时间:2016-02-23 15:32:52

标签: php date

我有一个将用户事务记录到数据库中的应用程序。记录的数据包括:用户执行交易的时间(例如购买材料),当天(例如2016-12-23),用户交易的内容等。我有一个管理面板,收集这些数据并显示整体统计数据。我需要分析数据,例如;如果我需要找出该周所做的所有购买(从周日到当周的当天),我会从数据库中选择所有具有从前一个星期日到当天的日期的出现,以便我显示每周统计数据。 现在,由于平均每周完成,我只需要获得当前日期,前一个星期日以及两者之间的日期。我知道如何获得这两个,但不知道如何根据一周的日期获得中间日期。 请注意,时间的格式为

$today = date("Y-m-d");

并获得我之前使用的星期日:

$prevsunday = date("Y-m-d",strtotime("last Sunday"));

我问如何过中,以及如何处理更新的查询。 有什么建议可以改善我的查询吗?

1 个答案:

答案 0 :(得分:0)

假设MySQL,您可以使用dayofweek找出"之前的星期日":

mysql> select curdate(), dayofweek(curdate()),
    curdate() - interval (dayofweek(curdate())-1) day AS sunday;
+------------+----------------------+------------+
| curdate()  | dayofweek(curdate()) | sunday     |
+------------+----------------------+------------+
| 2016-02-23 |                    3 | 2016-02-21 |
+------------+----------------------+------------+
1 row in set (0.00 sec)

所以你有类似

的东西
SELECT ...
...
WHERE dateofpurchase BETWEEN
    (curdate() - interval (dayofweek(curdate())-1) day)
   AND
     curdate();