timestampdiff (MYSQL)函数在Highgo DB中的写法

文章目录

环境

系统平台:N/A

版本:4.3.4.6

症状

MYSQL中正常执行的业务SQL报错,找不到timestampdiff函数。

问题原因

在做MYSQL到Highgo DB 迁移适配工作时,客户大量使用了timestampdiff 函数,修改比较麻烦,希望可以使用同名函数来替代。

解决方案

sql 复制代码
CREATE OR REPLACE FUNCTION TIMESTAMPDIFF(p_what varchar2, p_d1 timestamp, p_d2  timestamp)

RETURNS numeric

LANGUAGE plpgsql

AS $function$

DECLARE

l_result     number;

t_result       number;

begin

        l_result:=null;

        --秒

        if   (LOWER(p_what)   =  'second')   then

               select floor(extract(epoch from (p_d2-p_d1))) into t_result;

              l_result := t_result;

        end   if;

        --小时

        if   (LOWER(p_what)   =  'minute')   then

               select floor(extract(epoch from (p_d2-p_d1))/60) into t_result;

              l_result := t_result;

        end   if;

        --天

        if   (LOWER(p_what)   =   'hour')   then

               select floor(extract(epoch from (p_d2-p_d1))/60/60) into t_result;

              l_result := t_result;

        end   if;

         if   (LOWER(p_what)   =   'day')   then

               select floor(extract(day from (p_d2-p_d1))) into t_result;

              l_result := t_result;

        END IF;

    return   l_result;

end;

$function$

示例:

sql 复制代码
select TIMESTAMPDIFF('SECOND', '2018-03-20 09:00:00', '2018-03-22  10:00:01');
相关推荐
暮暮祈安41 分钟前
Celery 新手入门指南
java·数据库·python·flask·httpx
xiaowang1234shs1 小时前
怪兽轻断食技术深度测评:从断食计时引擎到AI识别算法的工程实践解析
数据库·人工智能·算法·macos·机器学习·p2p·visual studio
Quincy_Freak2 小时前
银河麒麟 aarch64 环境下轻量 SQLite 管理方案实践:SQLiteGo 落地体验
数据库·sqlite·sqlitego
灵机一物2 小时前
企业选型参考:2026 CXL 内存扩展方案六强测评与落地指南
服务器·网络·数据库·人工智能
秋风渡.2 小时前
MySQL_数据类型知识
数据库·mysql
Season4503 小时前
Redis命令 (generic即通用命令)
数据库·redis·bootstrap
liwulin05063 小时前
【ollama】自定义结构化输出
linux·前端·数据库·ollama
一嘴一个橘子3 小时前
MysqL 主键索引 就是 聚簇索引 吗
mysql
木易士心4 小时前
MyBatis数据源切换全面解析
数据库
Whyn4 小时前
MySQL 学习笔记(二)
mysql