HGDB创建同名同参函数实现SqlServer中的DATEADD函数
Posted 瀚高PG实验室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HGDB创建同名同参函数实现SqlServer中的DATEADD函数相关的知识,希望对你有一定的参考价值。
目录
环境
文档用途
详细信息
环境
系统平台:Linux x86-64 Red Hat Enterprise Linux 7
版本:4.3.4.5
文档用途
SqlServer的内置函数DATEADD()在日期中添加或减去指定的时间间隔,HGDB中没有这个内置函数,可以通过编写同名同参的函数来实现相同的功能。
详细信息
SqlServer中DATEADD用法:
DATEADD(datepart,number,date)
date参数是合法的日期表达式;number是指定添加或减去的时间间隔,此数可以是正数或负数;datepart参数可以是年,月,日等。
HGDB实现相应的功能创建DATEADD函数:
highgo=# create or replace function dateadd(in txtDatepart text,in intNumber integer,in timeVal timestamp)
returns timestamp as
B
O
D
Y
BODY
BODY
begin
if upper(txtDatepart)= ‘YEAR’ then return add_months(timeVal,intNumber * 12);
end if;
if upper(txtDatepart)= ‘D’ or upper(txtDatepart)= ‘DAY’ then
return add_days_to_timestamp(timeVal,intNumber);
end if;
end;
B
O
D
Y
BODY
BODY
language plpgsql;
CREATE FUNCTION
注:参数txtDatepart需要对其它值进行添加减去(如月份等),可以再追加if语句。
创建测试表:
highgo=# create table test_DATEADD(id integer,name varchar,setdate timestamp);
CREATE TABLE
highgo=# insert into test_dateadd values (1,‘hope’,‘2020-01-01’);
INSERT 0 1
使用如下SELECT语句:
highgo=# select id,dateadd(‘year’,1,setdate) as setdate from test_dateadd;
id | setdate
----±--------------------
1 | 2021-01-01 00:00:00
(1 行记录)
highgo=# select id,dateadd(‘year’,-1,setdate) as setdate from test_dateadd;
id | setdate
----±--------------------
1 | 2019-01-01 00:00:00
(1 行记录)
执行DATEADD()函数可以对日期进行指定时间间隔的添加或减去。
更多详细信息请登录【瀚高技术支持平台】查看https://support.highgo.com/#/index/docContent/90217aa30110d80f
以上是关于HGDB创建同名同参函数实现SqlServer中的DATEADD函数的主要内容,如果未能解决你的问题,请参考以下文章