在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
相关推荐
wjhx7 小时前
QT中对蓝牙权限的申请,整理一下
java·数据库·qt
冰暮流星8 小时前
javascript之二重循环练习
开发语言·javascript·数据库
万岳科技系统开发8 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
冉冰学姐8 小时前
SSM智慧社区管理系统jby69(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·管理系统·智慧社区·ssm 框架
杨超越luckly8 小时前
HTML应用指南:利用GET请求获取中国500强企业名单,揭秘企业增长、分化与转型的新常态
前端·数据库·html·可视化·中国500强
斯普信专业组8 小时前
构建基于MCP的MySQL智能运维平台:从开源服务端到交互式AI助手
运维·mysql·开源·mcp
Elastic 中国社区官方博客8 小时前
Elasticsearch:Workflows 介绍 - 9.3
大数据·数据库·人工智能·elasticsearch·ai·全文检索
仍然.8 小时前
MYSQL--- 聚合查询,分组查询和联合查询
数据库
一 乐9 小时前
校园二手交易|基于springboot + vue校园二手交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
啦啦啦_99999 小时前
Redis-0-业务逻辑
数据库·redis·缓存