使用 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')