Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 前天的SQL营业额_Mysql_Sql - Fatal编程技术网

Mysql 前天的SQL营业额

Mysql 前天的SQL营业额,mysql,sql,Mysql,Sql,我正在阻止一个SQL查询。我希望能在前一天恢复去年的营业额。例如:我们是19年8月13日,我希望去年的营业额是18年8月12日 我该怎么做?这是我的要求: SELECT SUM(total_paid/1.2) FROM '._DB_PREFIX_.'orders WHERE o.date_add BETWEEN DATE_FORMAT( CASE WHEN YEAR( DATE_SUB( now(), INTERVAL 36

我正在阻止一个SQL查询。我希望能在前一天恢复去年的营业额。例如:我们是19年8月13日,我希望去年的营业额是18年8月12日

我该怎么做?这是我的要求:

SELECT SUM(total_paid/1.2)
        FROM '._DB_PREFIX_.'orders
        WHERE o.date_add BETWEEN DATE_FORMAT(
        CASE
            WHEN YEAR( DATE_SUB( now(), INTERVAL 364 DAY ) ) = YEAR(now() )
            THEN DATE_SUB(concat(YEAR(now()),'-',MONTH(now()),'-01'), INTERVAL 371 DAY)
            ELSE DATE_SUB(concat(YEAR(now()),'-',MONTH(now()),'-01'), INTERVAL 364 DAY) END, '%Y/%m/%d') AND
        CASE
            WHEN YEAR( DATE_SUB( now(), INTERVAL 364 DAY ) ) = YEAR(now() )
            THEN DATE_SUB(now(), INTERVAL 371 DAY)
            ELSE DATE_SUB(now(), INTERVAL 364 DAY) END
        AND valid=1

谢谢您的帮助。

您似乎可以将查询简化为以下内容:

SELECT SUM(total_paid/1.2)
FROM '._DB_PREFIX_.'orders
WHERE DATE(o.date_add) = CURDATE() - INTERVAL 1 YEAR - INTERVAL 1 DAY
请注意,根据您对2月29日的处理方式,您可能希望将表达式更改为

CURDATE() - INTERVAL 1 DAY - INTERVAL 1 YEAR
在第一种形式中,2020-02-29将映射到2019-02-27,在第二种形式中,它将映射到2019-02-28。

{ 从“总计”选项卡中选择“总计”列/1.2 其中now=当您的_date_列出现时的情况,4=0 然后添加日期列,间隔367天 ELSE DATE\u添加您的\u DATE\u列,间隔366天;}


如果您的“日期”列是闰年,则添加367,否则添加366,并与当前日期进行比较。

日期添加是什么类型的字段?例如:2018-08-12 10:00:00显示表格!!19年8月13日,是2019年8月13日还是2013年8月19日?或者1913年8月19日?使用适当的ISO 8601日期格式,即YYYY-MM-DD。@ChristopherTRIERWEILER无需担心。我很高兴能帮上忙。