mysql - 将 postgre 函数迁移到 mysql:检索日期范围
问题描述
我想将此 postgre 函数迁移到 mysql。该函数接收两个日期作为参数,并返回一个包含接收到的中间日期的数组。
例子:
发送两个日期“2019-01-01”和“2019-05-31”。
我得到:{'2019-01-01','2019-02-01','2019-03-01','2019-04-01','2019-05-01'}
函数postgre:
CREATE OR REPLACE FUNCTION schema.date_range(
start_date date,
end_date date)
RETURNS date[]
LANGUAGE 'plpgsql'
COST 100
VOLATILE
-- ROWS 0
AS $BODY$
DECLARE
date_exe date := start_date;
array_date date[];
BEGIN
WHILE date_exe <= end_date
LOOP
-- MAKE YOUR STUFF
RAISE NOTICE '%', date_exe;
array_date := array_append(array_date,date_exe);
date_exe := date_exe + interval '1 month';
END LOOP;
RETURN array_date;
END;
$BODY$;
这个想法是在一个表中插入两个日期之间每月的期间,返回的范围(来自 postgre 函数)执行一个 for 循环来插入这些值:
SET array_date_range = schema.date_range( '2019-01-01', '2019-05-31'); -- function I want to migrate
for i in coalesce(array_lower(array_date_range, 1),1)..coalesce(array_upper((array_date_range, , 1),1) loop
SELECT LAST_DAY((array_date_range[i]) INTO v_date_end;
INSERT INTO schama.table (date_ini, date_end)
VALUES (array_date_range[i] ,v_date_end);
end loop;
提前致谢
解决方案
推荐阅读
- api - Adobe 分析 API v 2
- r - R循环用牛顿法逼近正实数的平方根
- angular - 本机脚本。如何使用 png 图像创建自定义操作栏?
- informatica-powercenter - 在参数文件中设置参数并在同一工作流程中使用
- gradle - 使用 Gradle Kotlin DSL 构建源 jar?
- ms-access - 在 Access VBA 中,如何将自定义命名文件附加到 Outlook?
- python - 获取要删除的行的索引,其中两列为零
- ruby-on-rails - 是否可以将参数传递到模态窗口?需要模态来引用对象
- image - 如何在 Vich Uploader 中提交表单之前显示图像缩略图?
- spring - 模拟原型作用域bean