CREATE OR REPLACE FUNCTION timeadd(difftype character varying, incrementvalue integer, inputdate timestamp with time zone)
RETURNS timestamp without time zone AS
$BODY$
DECLARE
YEAR_CONST Char(15) := 'year';
MONTH_CONST Char(15) := 'month';
WEEK_CONST Char(15) := 'week';
DAY_CONST Char(15) := 'day';
HOUR_CONST Char(15) := 'hour';
MIN_CONST Char(15) :='mi';
SECOND_CONST Char(15) :='ss';
dateTemp timestamp;
intervals interval;
BEGIN
IF lower($1) = lower(YEAR_CONST) THEN
select cast(cast(incrementvalue as character varying) || ' year' as interval) into intervals;
ELSEIF lower($1) = lower(MONTH_CONST) THEN
select cast(cast(incrementvalue as character varying) || ' months' as interval) into intervals;
ELSEIF lower($1) = lower(WEEK_CONST) THEN
select cast(cast(incrementvalue as character varying) || ' week' as interval) into intervals;
ELSEIF lower($1) = lower(DAY_CONST) THEN
select cast(cast(incrementvalue as character varying) || ' day' as interval) into intervals;
ELSEIF lower($1) = lower(HOUR_CONST) THEN
select cast(cast(incrementvalue as character varying) || ' hour' as interval) into intervals;
ELSEIF lower($1) = lower(MIN_CONST) THEN
select cast(cast(incrementvalue as character varying) || ' minute' as interval) into intervals;
ELSEIF lower($1) = lower(SECOND_CONST) THEN
select cast(cast(incrementvalue as character varying) || ' second' as interval) into intervals;
END IF;
dateTemp:= inputdate + intervals;
RETURN dateTemp;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
------------------------------------------- API ------------------------------------------------------------
功能:类似于Sybase语法中的dateadd函数,用于时间加减相应的时间段
参数:
- $1 时间运算格式,分为:ss(秒),mi(分钟),hour(小时),day(天),week(周),month(月),year(年)
- $2 时间运算间隔,整型,正负均可
- $3 本地时间,常用now()代替
范例:
select timeadd('day',-1,now())
分享到:
相关推荐
1. 博客:PostgreSQL的学习心得和知识总结(六十七)|语法级自上而下完美实现MySQL数据库的 IF函数和IFNULL函数 的实现方案
在PostgreSQL中,有时需要利用C语言来编写高性能或安全的关键功能,这可以通过创建外部函数实现。本教程将详细介绍如何在PostgreSQL中实现C语言外部函数的调用,包括环境配置、源代码编写、编译、创建函数以及测试...
标题和描述中提到的“postgresql 兼容 oracle 函数”就是指在PostgreSQL中实现与Oracle类似的函数,以便于在两个系统间平滑过渡。 Oracle数据库拥有大量的内置函数,如日期处理、字符串操作、数学计算等,这些在...
postgresql 字符串函数 收集各种字符串操作函数postgresql 字符串函数 收集各种字符串操作函数
PostgreSQl函数部分阅读笔记 关于函数部分在PostgreSQL中的实现问题的解释 聚集函数
本文将深入探讨如何在PostgreSQL中创建自定义函数,特别是在使用C语言编写动态库来实现这一功能时的简单示例。 首先,我们需要理解自定义函数在PostgreSQL中的作用。自定义函数允许用户根据特定需求扩展数据库的...
PostgreSQL与PostGIS的安装和空间数据导入 PostgreSQL是一个功能强大且开源的关系数据库管理系统,而PostGIS则是一个基于PostgreSQL的空间数据库扩展,提供了对空间数据的支持。在本文中,我们将介绍如何安装...
支持2万+汉字转拼音首字母
支持2万+汉字转拼音
为了在PostgreSQL中实现与Oracle兼容的USERENV功能,我们可以创建自定义函数来模拟这些行为。 首先,我们需要创建一个名为userenv的函数,该函数接受一个参数(anynonarray类型),然后根据传入的参数值返回相应的...
此外,还需要注意的是,DB2有一些内置的函数和操作用于处理特殊数据类型,而在GreenPlum/PostgreSQL中可能没有直接等价的功能,这可能需要编写自定义函数来实现。 ###### 2.2.3 表约束 表约束在DB2与GreenPlum/...
PostgreSQL 函数 自定义 PostgreSQL 函数和扩展的存储库。 diff_tables 一个简单的 plpgsql 函数,它接受两个表名(通过regclass类型),构建一个比较它们的内容的查询,运行它,并返回一组具有不同行的类似 diff ...
PostgreSQL 数据类型和数学函数 PostgreSQL 是一个功能强大且广泛使用的开源关系数据库管理系统,本文将概述 PostgreSQL 的数据类型和数学函数。 一、数据类型 PostgreSQL 支持多种数据类型,包括整型、浮点型...
为了在PostgreSQL中实现与SQL Server `ISDATE`相似的功能,我们可以使用PL/pgSQL语言编写一个自定义函数。具体代码如下: ```sql CREATE OR REPLACE FUNCTION isdate(in_date text) RETURNS integer AS $BODY$ ...
尤其是在高并发、大数据量的情况下,原始的Window函数实现可能会导致性能问题,比如响应时间过长、资源消耗过大等。 #### 四、基于临时窗口的优化方案 为了解决上述问题,本文提出了一种基于临时窗口和组共享思想...
在PostgreSQL数据库系统中,字符串操作函数是进行数据处理和查询时不可或缺的一部分。这些函数提供了对文本字符串的各种操作,如...在实际使用中,根据具体需求灵活选择和组合这些函数,可以实现复杂的文本处理任务。
博客:PostgreSQL的学习心得和知识总结(六十五)|关于PostgreSQL数据库 实现MySQL数据库find_in_set()函数 的实现方案
PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (函数和操作符 函数和操作符 函数和操作符 <一>) 25 一、逻辑操作符: 一、逻辑操作符: 一、逻辑操作符: 一、逻辑操作符: .25 四、字符串函数和操作...
博文中的测试数据库
PostgreSQL学习手册(函数和操作符<一>) PostgreSQL学习手册(函数和操作符<二>) PostgreSQL学习手册(函数和操作符<三>) PostgreSQL学习手册(索引) PostgreSQL学习手册(事物隔离) PostgreSQL学习手册(性能提升技巧原理...