3

老实说,我不确定这是否在 MySQL 的范围内,或者这里是否需要一些 php 来解析数据。但如果是……某种存储过程可能是必要的。

我有一个表,其中存储带有时间戳和数量的行。

我的查询是动态的,将根据用户提供的日期范围进行搜索。我想在日期范围之间的表格中检索每天的金额的 SUM()。 如果给定日期没有条目,则包括 0

有什么影响...

SELECT 
   CASE
     WHEN //there are entries present at a given date
       THEN SUM(amount)
     ELSE 0
   END AS amountTotal,
   //somehow select the day
   FROM  thisTableName T
   WHERE T.timeStamp BETWEEN '$start' AND '$end'
   GROUP BY //however I select the day

这是一个两部分...
有没有办法选择返回列的一部分?像mysql中的某种正则表达式?
有没有办法为没有行的日期返回 0?

4

1 回答 1

2
select * from thisTableName group by date(created_at);

在你的情况下,它会更像

SELECT id, count(id) as amountTotal
FROM thisTableName
WHERE timeStamp BETWEEN '$start' AND '$end'
GROUP BY DATE(timeStamp);

到目前为止,您的问题是重复的:link

于 2010-01-28T19:08:16.260 回答