1、搜索安装包
dnf search python |grep postgresql
2、根据postgresql版本选择安装
dnf install postgresql12-plpython3.x86_64
3、postgresql 数据库安装扩展
CREATE EXTENSION plpython3u;
4、创建python函数
4.1、比较两个数值大小
CREATE FUNCTION pymax (a integer, b integer)
RETURNS integer
AS $$
if a > b:
return a
return b
$$ LANGUAGE plpython3u;
执行
select pymax(112,13);
4.2、获取今天的日期
create or replace function today()
RETURNS varchar
as
$$
import datetime
today = datetime.date.today()
return today
$$
LANGUAGE plpython3u;
执行
select today()
结果:2020-10-23
4.3、获取时间相当于当前时间偏移量的日期
create or replace function timedelta(a integer)
RETURNS varchar
as $$
global a
import datetime
time_now = datetime.datetime.now()
time = (time_now + datetime.timedelta(days=a)).strftime("%Y%m%d")
return time
$$
LANGUAGE plpython3u;
执行
select timedelta(-1)
结果:20201022
4.3、执行python文件中的函数
4.3.1、创建python文件 /usr/lib64/python3.6/dateUtil.py
import datetime
def mytimedelta():
time_now = datetime.datetime.now()
time = (time_now + datetime.timedelta(days=1)).strftime("%Y%m%d")
return time
def mytimedelta2(daynum):
time_now = datetime.datetime.now()
time = (time_now + datetime.timedelta(days=daynum)).strftime("%Y%m%d")
return time
~
4.3.2、创建函数
-- 不传递参数
CREATE or replace FUNCTION mytimedelta()
RETURNS varchar
AS $$
import dateUtil
return dateUtil.mytimedelta()
$$ LANGUAGE plpython3u;
-- 传递参数
CREATE or replace FUNCTION mytimedelta2(a integer)
RETURNS varchar
AS $$
import dateUtil
return dateUtil.mytimedelta2(a)
$$ LANGUAGE plpython3u;
4.3.3、执行函数
select mytimedelta()
select mytimedelta2(-5)
结果:20201024
最后修改于 2020-09-17 16:19:27
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付

