`
housen1987
  • 浏览: 343554 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

PostgreSQL实现dateadd函数

阅读更多

 

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. $1 时间运算格式,分为:ss(秒),mi(分钟),hour(小时),day(天),week(周),month(月),year(年)
  2. $2 时间运算间隔,整型,正负均可
  3. $3 本地时间,常用now()代替

范例:

select timeadd('day',-1,now())
   

0
3
分享到:
评论

相关推荐

    PostgreSQL IF/IFNULL 函数 内核开发

    1. 博客:PostgreSQL的学习心得和知识总结(六十七)|语法级自上而下完美实现MySQL数据库的 IF函数和IFNULL函数 的实现方案

    postgresql 实现c language外部函数调用

    在PostgreSQL中,有时需要利用C语言来编写高性能或安全的关键功能,这可以通过创建外部函数实现。本教程将详细介绍如何在PostgreSQL中实现C语言外部函数的调用,包括环境配置、源代码编写、编译、创建函数以及测试...

    postgresql 兼容 oracle 函数

    标题和描述中提到的“postgresql 兼容 oracle 函数”就是指在PostgreSQL中实现与Oracle类似的函数,以便于在两个系统间平滑过渡。 Oracle数据库拥有大量的内置函数,如日期处理、字符串操作、数学计算等,这些在...

    postgresql 字符串函数

    postgresql 字符串函数 收集各种字符串操作函数postgresql 字符串函数 收集各种字符串操作函数

    PostgreSQl函数部分阅读笔记

    PostgreSQl函数部分阅读笔记 关于函数部分在PostgreSQL中的实现问题的解释 聚集函数

    postgresql+postgis安装和空间数据的导入

    PostgreSQL与PostGIS的安装和空间数据导入 PostgreSQL是一个功能强大且开源的关系数据库管理系统,而PostGIS则是一个基于PostgreSQL的空间数据库扩展,提供了对空间数据的支持。在本文中,我们将介绍如何安装...

    PostgreSQL简单函数创建

    本文将深入探讨如何在PostgreSQL中创建自定义函数,特别是在使用C语言编写动态库来实现这一功能时的简单示例。 首先,我们需要理解自定义函数在PostgreSQL中的作用。自定义函数允许用户根据特定需求扩展数据库的...

    Postgresql优化器函数调用思维导图

    首先,当一个查询提交给PostgreSQL时,函数`exec_simple_query()`被调用,它是整个查询处理的起点。对于非实用程序命令(如INSERT、UPDATE、DELETE等),会调用`pg_plan_queries()`进行规划。这个函数会处理一系列的...

    DB2到GreenPlum/PostgreSQL的转换指南

    此外,还需要注意的是,DB2有一些内置的函数和操作用于处理特殊数据类型,而在GreenPlum/PostgreSQL中可能没有直接等价的功能,这可能需要编写自定义函数来实现。 ###### 2.2.3 表约束 表约束在DB2与GreenPlum/...

    postgresql汉字转拼音函数

    支持2万+汉字转拼音

    PostgreSQL实现USERENV函数(兼容oracle)

    为了在PostgreSQL中实现与Oracle兼容的USERENV功能,我们可以创建自定义函数来模拟这些行为。 首先,我们需要创建一个名为userenv的函数,该函数接受一个参数(anynonarray类型),然后根据传入的参数值返回相应的...

    postgresql-functions:自定义 PostgreSQL 函数和扩展

    PostgreSQL 函数 自定义 PostgreSQL 函数和扩展的存储库。 diff_tables 一个简单的 plpgsql 函数,它接受两个表名(通过regclass类型),构建一个比较它们的内容的查询,运行它,并返回一组具有不同行的类似 diff ...

    postgresql的类似sqlserver的isdate方法

    为了在PostgreSQL中实现与SQL Server `ISDATE`相似的功能,我们可以使用PL/pgSQL语言编写一个自定义函数。具体代码如下: ```sql CREATE OR REPLACE FUNCTION isdate(in_date text) RETURNS integer AS $BODY$ ...

    postgresql整理,包含窗口函数

    PostgreSQL 数据类型和数学函数 PostgreSQL 是一个功能强大且广泛使用的开源关系数据库管理系统,本文将概述 PostgreSQL 的数据类型和数学函数。 一、数据类型 PostgreSQL 支持多种数据类型,包括整型、浮点型...

    PostgreSQL的Window分析函数源码优化

    尤其是在高并发、大数据量的情况下,原始的Window函数实现可能会导致性能问题,比如响应时间过长、资源消耗过大等。 #### 四、基于临时窗口的优化方案 为了解决上述问题,本文提出了一种基于临时窗口和组共享思想...

    PostgreSQL find_in_set 内核开发

    博客:PostgreSQL的学习心得和知识总结(六十五)|关于PostgreSQL数据库 实现MySQL数据库find_in_set()函数 的实现方案

    postgresql汉字转拼音首字母函数

    支持2万+汉字转拼音首字母

    让postgresql支持存储过程(函数)的调试.doc

    总之,PostgreSQL虽然不直接内置强大的调试工具,但通过使用如EDB Debugger这样的第三方解决方案,可以实现高效且直观的存储过程(函数)调试。这将有助于开发者快速识别并解决问题,提升整体数据库管理效率。

    postgresql汉字转拼音首字母函数,用于批量生成助记码、拼音码,包含两万多个汉字

    postgresql汉字转拼音首字母函数,用于批量生成助记码、拼音码,包含两万多个汉字。

    POSTGreSql函数

    文件中还提到了将多点转换成Multi类型的操作,这通常是通过ST_Multi函数实现的,它将单个几何对象转换为一个集合,例如将单个点转换为多点。 在进行空间数据处理时,有时需要将MultiLineString转换成LineString,这...

Global site tag (gtag.js) - Google Analytics