使用 Django SQL Explorer 进行日期计算
Date math with Django SQL Explorer
我已经在一个项目上实现了 Django SQL Explorer,我正在尝试构建一个查询来提取今天日期和今天日期之前 12 个月之间的条目,但我很难弄清楚SQL Explorer 如何计算日期。到目前为止,我唯一能够发现的是 SQL Explorer 使用 current_date 作为今天的日期。
所以:
SELECT current_date;
returns:
2021-10-02
我已经尝试使用 MySQL 实现(因为这是我的项目正在使用的数据库):
SELECT current_date - INTERVAL 12 MONTH;
returns:
near "12": syntax error
我能得出的最接近的结果是一些非常简单的数学运算,仅适用于年份并删除所有其他日期信息:
SELECT current_date - 1;
returns:
2020
谁能帮我弄清楚如何 return 在 Django SQL Explorer 中的今天日期之前 12 个月的日期?
SELECT current_date
SELECT current_date - [12 MONTH];
应该return:
2021-10-02
2020-10-02
提前致谢!
您必须在 MySQL 语法中使用 DATE_SUB
函数。例如:
SELECT DATE_SUB('2021-10-02', INTERVAL 1 YEAR);
或
SELECT DATE_SUB('2021-10-02', INTERVAL 12 MONTH);
我怀疑您使用的是 SQLite 而不是 MySql,在这种情况下您需要:
SELECT date(CURRENT_DATE, '-12 month')
或者:
SELECT date(CURRENT_DATE, '-1 year')
我已经在一个项目上实现了 Django SQL Explorer,我正在尝试构建一个查询来提取今天日期和今天日期之前 12 个月之间的条目,但我很难弄清楚SQL Explorer 如何计算日期。到目前为止,我唯一能够发现的是 SQL Explorer 使用 current_date 作为今天的日期。
所以:
SELECT current_date;
returns:
2021-10-02
我已经尝试使用 MySQL 实现(因为这是我的项目正在使用的数据库):
SELECT current_date - INTERVAL 12 MONTH;
returns:
near "12": syntax error
我能得出的最接近的结果是一些非常简单的数学运算,仅适用于年份并删除所有其他日期信息:
SELECT current_date - 1;
returns:
2020
谁能帮我弄清楚如何 return 在 Django SQL Explorer 中的今天日期之前 12 个月的日期?
SELECT current_date
SELECT current_date - [12 MONTH];
应该return:
2021-10-02
2020-10-02
提前致谢!
您必须在 MySQL 语法中使用 DATE_SUB
函数。例如:
SELECT DATE_SUB('2021-10-02', INTERVAL 1 YEAR);
或
SELECT DATE_SUB('2021-10-02', INTERVAL 12 MONTH);
我怀疑您使用的是 SQLite 而不是 MySql,在这种情况下您需要:
SELECT date(CURRENT_DATE, '-12 month')
或者:
SELECT date(CURRENT_DATE, '-1 year')