【UTC格式】Oracle低版本实现UTC格式转换
Oracle低版本实现UTC格式转换
文章目录
- Oracle低版本实现UTC格式转换
- 前言
- 一、创建 FUNCTION(GET_UTC_DATE)
- 二、使用步骤
- 1.跨年日期
- 2.跨月日期(判断 闰年 or 平年、用于计算2月天数,正常大小月)
- 3.跨日日期
- 3.正常日期
- 总结
前言
现在Oracle版本过低是不能直接转UTC格式时间的,那么我们低版本用户可以以下这样做
一、创建 FUNCTION(GET_UTC_DATE)
CREATE OR REPLACE FUNCTION GET_UTC_DATE (V_DATE IN DATE)RETURN VARCHAR2
ISV_DATA VARCHAR2 (50);
BEGINSELECT CASE--跨年WHEN TO_CHAR (V_DATE, 'MM') = 01AND TO_CHAR (V_DATE, 'DD') = 01AND TO_CHAR (V_DATE, 'HH24') < 08THENTO_NUMBER (TO_CHAR (V_DATE, 'YYYY')) - 1|| '-'|| LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'MM')) + 11, 2, 0)|| '-'|| LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'DD')) + 29, 2, 0)|| 'T'|| LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'HH24')) + 16, 2, 0)|| TO_CHAR (V_DATE, ':MI:SS')|| '+08:00'--闰年跨月WHEN TO_CHAR (V_DATE, 'DD') = 01AND TO_CHAR (V_DATE, 'HH24') < 08AND LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'MM')), 2, 0) = 03AND MOD (TO_CHAR (V_DATE, 'YYYY'), 4) = 0AND MOD (TO_CHAR (V_DATE, 'YYYY'), 100) != 0THENTO_NUMBER (TO_CHAR (V_DATE, 'YYYY'))|| '-'|| LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'MM')) - 1, 2, 0)|| '-'|| LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'DD')) + 28, 2, 0)|| 'T'|| LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'HH24')) + 16, 2, 0)|| TO_CHAR (V_DATE, ':MI:SS')|| '+08:00'--平年跨月WHEN TO_CHAR (V_DATE, 'DD') = 01AND TO_CHAR (V_DATE, 'HH24') < 08AND LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'MM')), 2, 0) =03AND MOD (EXTRACT (YEAR FROM V_DATE), 4) <> 0OR ( MOD (EXTRACT (YEAR FROM V_DATE), 100) = 0AND MOD (EXTRACT (YEAR FROM V_DATE), 400) <> 0)THENTO_NUMBER (TO_CHAR (V_DATE, 'YYYY'))|| '-'|| LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'MM')) - 1, 2, 0)|| '-'|| LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'DD')) + 27, 2, 0)|| 'T'|| LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'HH24')) + 16, 2, 0)|| TO_CHAR (V_DATE, ':MI:SS')|| '+08:00'--跨月/31天WHEN TO_CHAR (V_DATE, 'DD') = 01AND TO_CHAR (V_DATE, 'HH24') < 08AND LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'MM')), 2, 0) IN('02','04','06','09','11')THENTO_NUMBER (TO_CHAR (V_DATE, 'YYYY'))|| '-'|| LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'MM')) - 1, 2, 0)|| '-'|| LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'DD')) + 30, 2, 0)|| 'T'|| LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'HH24')) + 16, 2, 0)|| TO_CHAR (V_DATE, ':MI:SS')|| '+08:00'--跨月/30天WHEN TO_CHAR (V_DATE, 'DD') = 01AND TO_CHAR (V_DATE, 'HH24') < 08AND LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'MM')), 2, 0) IN('01','05','07','08','10','12')THENTO_NUMBER (TO_CHAR (V_DATE, 'YYYY'))|| '-'|| LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'MM')) - 1, 2, 0)|| '-'|| LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'DD')) + 29, 2, 0)|| 'T'|| LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'HH24')) + 16, 2, 0)|| TO_CHAR (V_DATE, ':MI:SS')|| '+08:00'--跨日WHEN TO_CHAR (V_DATE, 'HH24') < 08THENTO_CHAR (V_DATE, 'YYYY-MM')|| '-'|| LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'DD')) - 1, 2, 0)|| 'T'|| LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'HH24')) + 16, 2, 0)|| TO_CHAR (V_DATE, ':MI:SS')|| '+08:00'--当日ELSETO_CHAR (V_DATE, 'YYYY-MM-DD')|| 'T'|| LPAD (TO_NUMBER (TO_CHAR (V_DATE, 'HH24')) - 8, 2, 0)|| TO_CHAR (V_DATE, ':MI:SS')|| '+08:00'ENDtimestampINTO V_DATAFROM DUAL;RETURN V_DATA;
EXCEPTIONWHEN OTHERSTHENRETURN NULL;
END;
二、使用步骤
1.跨年日期
--代码如下(示例)
SELECT GET_UTC_DATE (TO_DATE ('2023-01-01 07:55:55', 'YYYY-MM-DD HH24:MI:SS'))FROM DUAL;-- out: 2022-12-31T23:55:55+08:00
2.跨月日期(判断 闰年 or 平年、用于计算2月天数,正常大小月)
--代码如下(示例)
--跨月日期(判断 闰年 or 平年、用于计算2月天数)
--平年
SELECT GET_UTC_DATE (TO_DATE ('2023-03-01 07:55:55', 'YYYY-MM-DD HH24:MI:SS'))FROM DUAL;-- out: 2023-02-28T23:55:55+08:00--闰年
SELECT GET_UTC_DATE (TO_DATE ('2024-03-01 07:55:55', 'YYYY-MM-DD HH24:MI:SS'))FROM DUAL;-- out: 2024-02-29T23:55:55+08:00--大月
SELECT GET_UTC_DATE (TO_DATE ('2023-04-01 07:55:55', 'YYYY-MM-DD HH24:MI:SS'))FROM DUAL;-- out: 2023-03-31T23:55:55+08:00--小月
SELECT GET_UTC_DATE (TO_DATE ('2023-05-01 07:55:55', 'YYYY-MM-DD HH24:MI:SS'))FROM DUAL;-- out: 2023-04-30T23:55:55+08:00
3.跨日日期
SELECT GET_UTC_DATE (TO_DATE ('2023-04-02 07:55:55', 'YYYY-MM-DD HH24:MI:SS'))FROM DUAL;-- out: 2023-04-01T23:55:55+08:00
3.正常日期
SELECT GET_UTC_DATE (TO_DATE ('2023-04-02 09:55:55', 'YYYY-MM-DD HH24:MI:SS'))FROM DUAL;-- out: 2023-04-02T01:55:55+08:00
总结
这篇文章到这就结束了,感受您的观看,真诚的致谢!!
相关文章:
【UTC格式】Oracle低版本实现UTC格式转换
Oracle低版本实现UTC格式转换 文章目录 Oracle低版本实现UTC格式转换前言一、创建 FUNCTION(GET_UTC_DATE)二、使用步骤1.跨年日期2.跨月日期(判断 闰年 or 平年、用于计算2月天数,正常大小月)3.跨日日期3.正常日期 总…...
[BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务
1.问题描述 使用yarn调度任务时,在CapacityScheduler页面上单击叶队列(或子队列)时,不会显示应用程序任务信息,root队列可以显示任务。此外,FairScheduler页面是正常的。 No matching records found2.原…...
Java 缓存中间件
Java 缓存中间件 关键词:Spring Cache、J2Cache、JetCache 一 、JSR 107 JSR107 中制订了 Java 缓存的规范。 因此,在很多缓存框架、缓存库中,其 API 都参考了 JSR 107 规范。 img Java Caching 定义了 5 个核心接口 CachingProvider - 定义…...
使用cmake配置matplotlibcpp生成VS项目
https://gitee.com/feboreigns/matplotlibcpp 这篇文章需要一些cmake基础,python基础,visualstudio基础 准备环境 注意如果在VS平台使用必须要手动下载python,不能使用conda里面的,比如3.8版本,因为conda里面没有py…...
Android : 画布绘制矩形和文字 让其居中显示简单应用
示例图: CenterView.java package com.example.demo;import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.Log; import android.view.View;public class Center…...
科研学习|论文解读——融合类目偏好和数据场聚类的协同过滤推荐算法研究
论文链接(中国知网): 融合类目偏好和数据场聚类的协同过滤推荐算法研究 - 中国知网 (cnki.net) 摘要:[目的/意义]基于近邻用户的协同过滤推荐作为推荐系统应用最广泛的算法之一,受数据稀疏和计算可扩展问题影响&#x…...
算法学习系列(十五):最小堆、堆排序
目录 引言一、最小堆概念二、堆排序模板(最小堆)三、模拟堆 引言 这个堆排序的话,考的还挺多的,主要是构建最小堆,并且在很多情况下某些东西还用得着它来优化,比如说迪杰斯特拉算法可以用最小堆优化&#…...
HCIA-Datacom题库(自己整理分类的)——OSPF协议多选
ospf的hello报文功能是 邻居发现 同步路由器的LSDB 更新LSA信息 维持邻居关系 下列关于OSPF区域描述正确的是 在配置OSPF区域正确必须给路由器的loopback接配置IP地址 所有的网络都应在区域0中宣告 骨干区域的编号不能为2 区域的编号范围是从0.0.0.0到255.255.255.255…...
elasticsearch-hadoop.jar 6.8版本编译异常
## 背景 重新编译 elasticsearch-hadoop 包; GitHub - elastic/elasticsearch-hadoop at 6.8 编译 7.17 版本时很正常,注意设置下环境变量就好,JAVA8_HOME/.... 编译 6.8 版本时(要求jdk8 / jdk9),出现…...
面试经典150题(50-53)
leetcode 150道题 计划花两个月时候刷完,今天(第二十二天)完成了4道(50-53)150: 50.(141. 环形链表)题目描述: 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个…...
Jetpack Compose中使用Android View
使用AndroidView创建日历 Composable fun AndroidViewPage() {AndroidView(factory {CalendarView(it)},modifier Modifier.fillMaxWidth(),update {it.setOnDateChangeListener { view, year, month, day ->Toast.makeText(view.context, "${year}年${month 1}月$…...
《MySQL》事务篇
事务特性 ACID Atomicity原子性:事务中的操作要么全部完成,要么全部失败。 Consistency一致性:事务操作前后,数据满足完整性约束。 Isolation隔离性:允许并发执行事务,每个事务都有自己的数据空间&…...
高阶组件和高阶函数是什么
高阶组件和高阶函数都是在函数式编程中常见的概念。 高阶组件(Higher-Order Component, HOC)是一种函数,接受一个组件作为参数,并返回一个新的组件。它可以用来增强现有的组件,给它添加额外的功能或属性。高阶组件在R…...
初步认识API安全
一、认识API 1. 什么是API API(应用程序接口):是一种软件中介,它允许两个不相关的应用程序相互通信。它就像一座桥梁,从一个程序接收请求或消息,然后将其传递给另一个程序,翻译消息并根据 API 的程序设计执行协议。A…...
MybatisX逆向工程方法
官方文档链接:MybatisX快速开发插件 | MyBatis-Plus (baomidou.com) 使用MybatisX可以快速生成mapper文件,实体类和service及实现 效果 方法:首先下载mybatisX插件 然后创建数据库信息 然后选中表,右键,点击Mybatis…...
每日一题:LeetCode-LCR 179. 查找总价格为目标值的两个商品
每日一题系列(day 16) 前言: 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🔎…...
SpringBoot 3.2.0 基于Logback定制日志框架
依赖版本 JDK 17 Spring Boot 3.2.0 工程源码:Gitee 日志门面和日志实现 日志门面(如Slf4j)就是一个标准,同JDBC一样来制定“规则”,把不同的日志系统的实现进行了具体的抽象化,只提供了统一的日志使用接…...
微软发布安卓版Copilot,可免费使用GPT-4、DALL-E 3
12月27日,微软的Copilot助手,可在谷歌应用商店下载。目前,只有安卓版,ios还无法使用。 Copilot是一款类ChatGPT助手支持中文,可生成文本/代码/图片、分析图片、总结内容等,二者的功能几乎没太大差别。 值…...
【STM32】程序在SRAM中运行
程序在RAM中运行 1、配置内存分配。 2、修改跳转文件 FUNC void Setup(void) { SP _RDWORD(0x20000000); PC _RDWORD(0x20000004); } LOAD RAM\Obj\Project.axf INCREMENTAL Setup(); 3、修改下载ROM地址和RAM地址; 中断向量表映射 中断向量表映射到SRA…...
docker 部署mysql
docker pull mysql:5.7.25 docker run \ --name mysql \ -e MYSQL_ROOT_PASSWORD123456 \ -p 3306:3306 \ -v /soft/mysql/conf:/etc/mysql \ -v /soft/mysql/data:/var/lib/mysql \-d \mysql:5.7.25安装好之后可以用命令行进入查看 docker exec -it mysql mysql -u root -p密…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
Unity中的transform.up
2025年6月8日,周日下午 在Unity中,transform.up是Transform组件的一个属性,表示游戏对象在世界空间中的“上”方向(Y轴正方向),且会随对象旋转动态变化。以下是关键点解析: 基本定义 transfor…...
