在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
相关推荐
风向决定发型丶2 小时前
redis集群搭建
数据库·redis·缓存
wei_shuo3 小时前
KES 扩展与插件开发实战:自定义函数、触发器与第三方插件集成
数据库·kes
风中芦苇啊4 小时前
从直接生成到受控配置:新一代图表Agent的SQL安全生成范式
数据库·sql·安全
吴声子夜歌4 小时前
SQL进阶——窗口函数
数据库·sql
周杰伦的稻香4 小时前
MySQL8.0+中引入的SET_USER_ID权限迭代SUPER权限指定 DEFINER
数据库·mysql
动恰客流统计4 小时前
客流统计如何结合AI分析?从传统计数到智能决策的技术升级路径
数据库·人工智能·边缘计算
宠友信息5 小时前
多端数据互通场景下Spring Boot仿小红书源码结构设计
数据库·spring boot·redis·缓存·架构
风曦Kisaki5 小时前
#Linux数据库管理Day06:主从同步与MaxScale读写分离
linux·运维·数据库
影寂ldy6 小时前
C# try-catch 异常处理全套笔记
服务器·数据库·c#
长不胖的路人甲6 小时前
Redis 缓存的数据持久化方案讲解
数据库·redis·缓存