南大通用数据库(Gbase 8s) 创建UDR外部函数
一、在使用 date_format、from_unixtime、to_days、yearweek 函数时,Gbase 8s 数据库不支持,可以使用创建 UDR 外部函数来实现
二、登录命令控制台或者使用 navicat 连接 Gbase 数据库
这里使用 navicat ,点击新增连接选择 PostGreSql 驱动,添加地址、账号、密码
连接数据库后,选中目标库选中目标模式,再点击函数-新增函数执行以下语句即可
注意:这里 选中 public 模式,使用 mss 用户,自行修改函数中对应的内容( 例如:FUNCTION “public”.“date_format”、OWNER TO “mss”)
-
date_format 函数
CREATE OR REPLACE FUNCTION "public"."date_format"("ctimestamp" timestamptz, "informate" varchar)RETURNS "pg_catalog"."varchar" AS $BODY$-- Routine body goes here...DECLARE result_current_date varchar;BEGIN -- IF upper($1) = upper('YYYY-MM-DD') || upper($1) = upper('%Y-%M-%D') THEN -- SELECT to_char(now(),'YYYY-MM-DD') into result_current_date; -- END IF; -- -- -- IF upper($1) = upper('%Y-%M-%D %h:%m') || upper($1) = upper('%Y-%M-%D %h:%m') THEN -- SELECT to_char(now(),'YYYY-MM-DD HH:mm') into result_current_date; -- END IF; -- -- IF upper($1) = upper('%Y-%M-%D %h:%m:%s') || upper($1) = upper('%Y-%M-%D %h:%m:%s') THEN -- SELECT to_char(now(),'YYYY-MM-DD HH:mm:ss') into result_current_date; -- END IF;case upper($2)when upper('%Y') thenSELECT to_char(smalldatetime_to_timestamp($1),'YYYY') into result_current_date;when upper('%Y-%M') thenSELECT to_char(smalldatetime_to_timestamp($1),'YYYY-MM') into result_current_date; when upper('%Y-%M-%D') thenSELECT to_char(smalldatetime_to_timestamp($1),'YYYY-MM-DD') into result_current_date;when upper('%Y-%M-%D %h') thenSELECT to_char(smalldatetime_to_timestamp($1),'YYYY-MM-DD HH24') into result_current_date;when upper('%Y-%M-%D %h:%m') thenSELECT to_char(smalldatetime_to_timestamp($1),'YYYY-MM-DD HH24:MI') into result_current_date;when upper('%Y-%M-%D %h:%m:%s') thenSELECT to_char(smalldatetime_to_timestamp($1),'YYYY-MM-DD HH24:MI:ss') into result_current_date; when upper('%M') thenSELECT to_char(smalldatetime_to_timestamp($1),'MM') into result_current_date; when upper('%M-%D') thenSELECT to_char(smalldatetime_to_timestamp($1),'MM-DD') into result_current_date;when upper('%D') thenSELECT to_char(smalldatetime_to_timestamp($1),'DD') into result_current_date;when upper('%h') thenSELECT to_char(smalldatetime_to_timestamp($1),'HH24') into result_current_date; when upper('%h:%m') thenSELECT to_char(smalldatetime_to_timestamp($1),'HH24:MI') into result_current_date; when upper('%m') thenSELECT to_char(smalldatetime_to_timestamp($1),'MI') into result_current_date; when upper('%m:%s') thenSELECT to_char(smalldatetime_to_timestamp($1),'MI:ss') into result_current_date; when upper('%s') thenSELECT to_char(smalldatetime_to_timestamp($1),'ss') into result_current_date; when upper('%h:%m:%s') thenSELECT to_char(smalldatetime_to_timestamp($1),'HH24:MI:ss') into result_current_date; elseSELECT to_char(smalldatetime_to_timestamp($1),informate) into result_current_date;end case;RETURN result_current_date; END$BODY$LANGUAGE plpgsql VOLATILECOST 100;ALTER FUNCTION "public"."date_format"("ctimestamp" timestamptz, "informate" varchar) OWNER TO "mss";查询语句:
SELECT date_format(now(),'%Y-%M-%D %h:%m:%s'); -
from_unixtime 函数
CREATE OR REPLACE FUNCTION "public"."from_unixtime"("t" int8)RETURNS "pg_catalog"."timestamp" AS $BODY$DECLARE result_current_date timestamp;BEGIN select TO_TIMESTAMP(t) into result_current_date;RETURN result_current_date; END; $BODY$LANGUAGE plpgsql VOLATILECOST 100;ALTER FUNCTION "public"."from_unixtime"("t" int8) OWNER TO "mss";查询语句:
select from_unixtime(1692328679); -
to_days 函数
-- 参数 varchar类型 CREATE OR REPLACE FUNCTION "public"."to_days"("ctimestamp" varchar)RETURNS "pg_catalog"."int4" AS $BODY$-- Routine body goes here...DECLARE result_current_date int4;BEGINSELECT TIMESTAMPDIFF(day, '0001-01-01', $1) into result_current_date;RETURN result_current_date; END$BODY$LANGUAGE plpgsql VOLATILECOST 100;ALTER FUNCTION "public"."to_days"("ctimestamp" varchar) OWNER TO "mss";-- 参数 timestamptz 类型 CREATE OR REPLACE FUNCTION "public"."to_days"("ctimestamp" timestamptz)RETURNS "pg_catalog"."int4" AS $BODY$-- Routine body goes here...DECLARE result_current_date int4;BEGINSELECT TIMESTAMPDIFF(day, '0001-01-01', $1) into result_current_date;RETURN result_current_date; END$BODY$LANGUAGE plpgsql VOLATILECOST 100;ALTER FUNCTION "public"."to_days"("ctimestamp" timestamptz) OWNER TO "mss";查询语句:
select to_days(now()); -
yearweek 函数
CREATE OR REPLACE FUNCTION "public"."yearweek"("ctimestamp" timestamptz)RETURNS "pg_catalog"."int4" AS $BODY$-- Routine body goes here...DECLARE week_n int4;year_n int4;BEGINSELECT to_char(smalldatetime_to_timestamp($1),'YYYY') into year_n;SELECT trunc(1 + (smalldatetime_to_timestamp($1) - TRUNC(smalldatetime_to_timestamp($1), 'YEAR')) / 7) into week_n;RETURN ((year_n*100)+week_n); END$BODY$LANGUAGE plpgsql VOLATILECOST 100;ALTER FUNCTION "public"."yearweek"("ctimestamp" timestamptz) OWNER TO "mss";查询语句:
select YEARWEEK(now()); select YEARWEEK('2023-01-03 12');
相关文章:
南大通用数据库(Gbase 8s) 创建UDR外部函数
一、在使用 date_format、from_unixtime、to_days、yearweek 函数时,Gbase 8s 数据库不支持,可以使用创建 UDR 外部函数来实现 二、登录命令控制台或者使用 navicat 连接 Gbase 数据库 这里使用 navicat ,点击新增连接选择 PostGreSql 驱动…...
步入React正殿 - State进阶
目录 扩展学习资料 State进阶知识点 状态更新扩展 shouldComponentUpdate PureComponent 为何使用不变数据【保证数据引用不会出错】 单一数据源 /src/App.js /src/components/listItem.jsx 状态提升 /src/components/navbar.jsx /src/components/listPage.jsx src/A…...
【QT+ffmpeg】QT+ffmpeg 环境搭建
1.qt下载地址 download.qt.io/archive/ 2. win10sdk 下载 https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/ 安装 debug工具路径 qtcreater会自动识别 调试器选择...
责任链模式解决多个ifelse问题
责任链定义 责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它允许多个对象按照顺序处理请求,直到其中一个对象能够处理该请求为止。 在责任链模式中,通常有一个抽象处理者(Handler&a…...
Lnton羚通关于PyTorch的保存和加载模型基础知识
SAVE AND LOAD THE MODEL (保存和加载模型) PyTorch 模型存储学习到的参数在内部状态字典中,称为 state_dict, 他们的持久化通过 torch.save 方法。 model models.shufflenet_v2_x0_5(pretrainedTrue) torch.save(model, "../../data/ShuffleNetV2_X0.5.pth…...
python+django+mysql项目实践四(信息修改+用户登陆)
python项目实践 环境说明: Pycharm 开发环境 Django 前端 MySQL 数据库 Navicat 数据库管理 用户信息修改 修改用户信息需要显示原内容,进行修改 通过url传递编号 urls views 修改内容需要用数据库的更新,用update进行更新,用filter进行选择 输入参数多nid,传递要修…...
sCrypt编程马拉松于8月13日在复旦大学成功举办
继6月在英国Exeter大学成功举办了为期一周的区块链编程马拉松后,美国sCrypt公司创始人兼CEO刘晓晖博士带领核心团队成员王一强、郑宏锋、周全,于8月13日在复旦大学再次成功举办了一场全新的sCrypt编程马拉松。 本次活动由上海可一澈科技有限公司与复旦大…...
Selenium手动和自动两种方式启动Chrome驱动
1. 自动启动chrome驱动(已经安装了Selenium库和Chrome驱动) 要使用Selenium自动跟随自带的Chrome驱动,你需要首先确保你已经安装了Selenium库和Chrome驱动。然后,你可以按照以下步骤进行操作: 导入必要的库: from selenium imp…...
《PostgreSQL 开发指南》第32篇 物化视图
物化视图概述 物化视图(Materialized View)是 PostgreSQL 提供的一个扩展功能,它是介于视图和表之间的一种对象。 物化视图和视图的最大区别是它不仅存储定义中的查询语句,而且可以像表一样存储数据。物化视图和表的最大区别是它…...
【RocketMQ】快速入门
文章目录 消费模式同步消息异步消息单向消息延迟消息批量消息顺序消息事务消息Tag标签和Key键Tag的使用Key的使用 首先引入rocketmq的依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><ve…...
AB跳转轮询:让你的独立站收款智能化
独立站在近两年成为跨境电商的热门布局之一,特别是在亚马逊封号潮后,许多卖家开始转向独立站运营。然而,在迅速发展的同时,也不可避免地出现了一些问题,比如很多卖家的资金经常被不同程度地冻结,好不容易出…...
所有用户都能使用sudo吗
是的,Linux系统中的普通用户可以通过配置访问 sudo 命令来获得超级用户(root)权限的临时访问权。这使得普通用户可以在需要时执行需要管理员权限的操作,而无需永久性地切换到超级用户账户。 通过 sudo 命令,系统管理员…...
【广州华锐视点】VR警务教育实训系统模拟真实场景进行实践训练
随着科技的发展,虚拟现实技术在教育领域得到了广泛的应用。VR警务教育实训系统就是其中的一种应用,该系统由广州华锐互动开发,可以模拟真实的警务场景,让学生通过虚拟现实技术进行实践训练,提高学生的实践能力和技能水…...
【深入浅出C#】章节 7: 文件和输入输出操作:处理文本和二进制数据
文件和输入输出操作在计算机编程中具有重要性,因为它们涉及数据的持久化存储和交互。数据可以是不同类型的,例如文本、图像、音频、视频和二进制数据。这些不同类型的数据具有不同的存储需求。 文本数据是最常见的数据类型之一,用于存储和传输…...
Matlab中图例的位置(图例放在图的上方、下方、左方、右方、图外面)等
一、图例默认位置 默认的位置在NorthEast r 10; a 0; b 0; t0:0.1:2.1*pi; xar*cos(t); ybr*sin(t); A1plot(x,y,r,linewidth,4);%圆 hold on axis equal A2plot([0 0],[1 10],b,linewidth,4);%直线 legend([A1,A2],圆形,line)二、通过Location对legend的位置进行改变 变…...
【算法学习】两数之和II - 输入有序数组
题目描述 原题链接 给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 < index1 < …...
聚观早报|京东称在技术投入没有止境;木蚁机器人完成B2轮融资
【聚观365】8月18日消息 京东零售CEO表示在技术上投入没有止境 木蚁机器人完成B2轮超亿元融资 耐能推出AI芯片KL730 三星电子泰勒晶圆厂首家客户是AI半导体厂商 韩国新能源汽车7月出口额同比大增36% 京东零售CEO表示在技术上投入没有止境 近日,京东零售CEO辛利…...
C语言:选择+编程(每日一练)
目录 选择题: 题一: 题二: 题三: 题四: 题五: 编程题: 题一:尼科彻斯定理 示例1 题二:等差数列 示例2 本人实力有限可能对一些地方解释和理解的不够清晰&…...
信道数据传输速率、码元传输速率、调制速度,信号传播速度之间的关系
1、信道数据传输速率(bit/s) 举例:移动通信中的数据传输速率。假设你的手机连接到4G网络,该网络的最大理论数据传输速率为100 Mbps。这意味着在理想情况下,你的手机可以以每秒100兆比特的速度传输数据。 2、码元传输速…...
docker的使用方法总结
Docker是一个非常强大的工具,它可以用于创建、部署和运行应用程序。以下是一些docker相关的常用指令, 1、查看docker版本 docker version 2、查看正在运行的Docker容器 docker ps 3、查看所有的docker容器(包括没有运行的容器࿰…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...
一些实用的chrome扩展0x01
简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...
