在Highgo DB 中创建MySQL兼容函数datediff

文章目录

环境

系统平台:N/A

版本:4.3.4.6

症状

在MySQL迁移到Highgo DB时,MySQL中使用DATEDIFF函数获取两个日期的间隔,Highgo DB没有该函数,使用DATEDIFF 函数时,报错如下:

SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate;

SQL 错误 42883: ERROR: 42883: function datediff(unknown, unknown) does not exist

Hint: No function matches the given name and argument types. You might need to add explicit type casts.

问题原因

Highgo DB中没有DATEDIFF函数,需要手动创建该函数。

解决方案

MySQL中的DATEDIFF() 函数返回两个日期之间的天数。

语法

DATEDIFF(date1,date2)

date1 和 date2 参数是合法的日期或日期/时间表达式。

注释:只有值的日期部分参与计算。

测试结果如下:

sql 复制代码
SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate;



DiffDate

1

Highgo DB 创建 DATEDIFF 函数:

sql 复制代码
CREATE OR REPLACE FUNCTION datediff(p_d1 date, p_d2 date)

RETURNS numeric

LANGUAGE plpgsql

AS $function$

DECLARE

l_result   number;

begin       

    l_result:=floor(p_d1-p_d2);       

    return   l_result;

end;

$function$

测试结果如下:

sql 复制代码
SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate;



DiffDate

1
相关推荐
聆听。。花开雨落4 小时前
mybatis的typeHandler 作用
数据库·mybatis
pxzsky5 小时前
PG17数据库安装中分分词插件:pg_jieba
数据库·postgresql·pg_jieba
她说可以呀5 小时前
Redis哨兵
数据库·redis·bootstrap
霸道流氓气质6 小时前
KMS 密钥管理服务(Key Management Service)原理与实践
linux·服务器·数据库
kirs_ur6 小时前
CXL(Compute Express Link)— 内存扩展的未来
服务器·数据库·性能优化
MonolithIoT7 小时前
实战方案|设备备件无人值守仓库:连续化产线运维备件 7×24 小时数字化管控方案
运维·网络·数据库
瞬间&永恒~8 小时前
【MySQL】4-6:在同一个主机上使用 systemd 运行多个 MySQL服务器
服务器·数据库·mysql
心机之蛙qee8 小时前
Redis的主从、哨兵及集群
数据库·redis·缓存
gwf2168 小时前
磨损均衡算法(Wear Leveling)——SSD如何让每块闪存“公平退休“?
运维·数据库·人工智能·python·嵌入式硬件·算法·智能硬件
AAA@峥9 小时前
CentOS7 源码编译安装 MySQL5.7|SQL 基础操作 + 备份恢复完整实战
运维·数据库·sql·centos