下面给出了一个查询示例
SET @first_day_of_current_year = MAKEDATE(YEAR(CURRENT_DATE), 1);
SET @current_month = MONTH(CURRENT_DATE);
SELECT *
FROM document
WHERE
created >= (SELECT DATE_ADD(@first_day_of_current_year, INTERVAL @current_month - 2 MONTH))
AND
created < (SELECT DATE_ADD(@first_day_of_current_year, INTERVAL @current_month - 1 MONTH));
我要获取在两个日期范围内创建的所有文档。如你所见,我将一些计算放入变量中,因为我可以在 WHERE
条款。此外,这些计算结果只相差一个值,即月末的月份。所以计算也可以
SELECT DATE_ADD(@first_day_of_current_year, INTERVAL @current_month - x MONTH)
有没有办法为需要参数的计算创建一个临时函数?like so(伪语法)
SET @calculator = amountOfMonths => SELECT DATE_ADD(@first_day_of_current_year, INTERVAL @current_month - {{amountOfMonths}} MONTH);
这不会提高性能,但可能会提高可读性,因为可以重用某些东西。
1条答案
按热度按时间bzzcjhmw1#
您可以使用存储过程来完成所需的任务。然后可以将设置为out参数的参数传递给它,并在调用过程后使用它。
像这样的东西;
打电话给你可以这样做;
希望这有帮助!