作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对这些 php mysql 语句感到困惑。
我需要从表中的同一列(金额)获得四个不同的结果。
这些函数计算以下各项的(金额)总和:
年初至今
去年给予时间
去年捐赠总额
过去 30 天内的捐赠
它们似乎都是同一事物的变体。我不知道如何让 LastYearNow 显示正确的结果。如何显示从 2016 年初到 2016 年今天的结果?
public function getSum() {
$query = $this->db->query("SELECT SUM(amount) as amount_sum FROM " . DB_PREFIX . "donate Where date_added >= (CURDATE() - INTERVAL 12 MONTH) ");
return $query->row;
}
public function lastThirty() {
$query = $this->db->query("SELECT SUM(amount) as amount_sum FROM " . DB_PREFIX . "donate Where date_added >= (CURDATE() - INTERVAL 1 MONTH)" );
return $query->row;
}
public function lastYearNow() {
$query = $this->db->query("SELECT SUM(amount) as amount_sum FROM " . DB_PREFIX . "donate Where date_added >= (CURDATE() - INTERVAL 12 MONTH) ");
return $query->row;
}
public function lastYearTotal() {
$query = $this->db->query("SELECT SUM(amount) as amount_sum FROM " . DB_PREFIX . "donate Where YEAR(date_added) = YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))" );
return $query->row;
}
最佳答案
lastYearNow
的查询当前正在计算过去 12 个月的总计。相反,如果您想要计算去年从今年 1 号到当前日期的总计,则需要使用 BETWEEN 子句:
SELECT SUM(amount) as amount_sum
FROM donate
WHERE date_added BETWEEN
MAKEDATE(YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR)), 1, 1)
AND
(CURDATE() - INTERVAL 12 MONTH)
警告:我面前没有安装 MySQL,因此语法可能不太正确。
关于php - 去年这个日期的 MySQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45064914/
从存储过程中,我得到的数据的列名如 Last year 和 01、02、03 ... 在第一种情况下,列名由两个单词组成,在其他情况下,列名是带前导零的数字。我知道这个存储过程的设计者做了一些愚蠢的事
我正在尝试使用 php DateTime 对象创建一个显示去年、今年和下一年的保管箱。 在我当前的代码中,我创建了三个对象,并且必须对其中的两个对象调用一个方法。这似乎对资源有点沉重。 $today
我有一个名为 sales 的表,如下所示: s.no item_sold date 1 soap 25.07.2017 2
我是一名优秀的程序员,十分优秀!