MySql 将时间间隔与日期列表一起使用

MySql using interval with a list of dates

我愿意获取列表中列出的所有日期,减少 1 天 我正在尝试这样的事情:

select date
from MyTable
where date in ('2022-03-22', '2022-03-18', '2022-03-11') - interval 1 day

我希望收到:

'2022-03-21', '2022-03-17', '2022-03-10'

可以间隔进行。

这里是 link 它是如何工作的: https://www.db-fiddle.com/f/3PnzHErrf2fZFGZY67K12X/48

SELECT ADDDATE("2022-03-22", INTERVAL -1 DAY);
SELECT ADDDATE("2022-03-18", INTERVAL -1 DAY);
SELECT ADDDATE("2022-03-11", INTERVAL -1 DAY);

您也可以使用连接来实现,例如: https://www.db-fiddle.com/f/3PnzHErrf2fZFGZY67K12X/49

SELECT CONCAT(ADDDATE("2022-03-22", INTERVAL -1 DAY),' | ',
              ADDDATE("2022-03-18", INTERVAL -1 DAY),' | ',
              ADDDATE("2022-03-11", INTERVAL -1 DAY));

您可以将 1 天添加到 date 列的值以将其与 IN 列表进行比较:

SELECT date
FROM MyTable
WHERE date + INTERVAL 1 DAY IN ('2022-03-22', '2022-03-18', '2022-03-11');