【发布时间】:2019-02-26 03:34:35
【问题描述】:
我想创建一个 mysql 函数来根据我当地的假期日历获取到期日期(从 start_date 开始的 90 个工作日)。我的PHP函数中的查询是这样的..
select max(col_date) as due_date from (select col_date from ref_calendar where holiday=0 and col_date>'".$start_date."' limit 90) as a
我想把它做成一个mysql函数,这样我就可以查询“duedate(start_date)”来获取到期日期。
我试过了,但还是失败了。
CREATE FUNCTION duedate(st_date DATE)
DECLARE datedue DATE
BEGIN
SELECT MAX(col_date) INTO datedue from (select col_date from ref_calendar where holiday=0 and col_date>st_date limit 90);
RETURN datedue;
END
【问题讨论】:
-
你是怎么失败的?
-
SQL 错误 (1064):您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以获取在第 2 行的“DECLARE datedue DATE BEGIN SELECT MAX(col_date) INTO datedue from (select col_”附近使用的正确语法
-
问题已解决。 CREATE OR REPLACE FUNCTION duedate (st_date DATE) RETURNS DATE RETURN (select max(a.col_date) FROM (select col_date from ref_calendar where holiday=0 and col_date>st_date limit 90) as a);
标签: mysql user-defined-functions