Oracle 时间多少秒以后 oracle interval 多少分钟之前 Oracle日期1小时后 Java时间多少秒以后 Java日期多少天之前
Oracle 时间多少秒以后 oracle interval 多少分钟之前 Oracle日期1小时后 Java时间多少秒以后 Java日期多少天之前
一、概述
在项目开发中,遇到一个类似于 超时关闭的订单(超过1分钟后关闭订单) 的需求,在数据的时间写入时,用的数据库系统的时间函数 SYSDATE , 而在处理超时时间时,用的是 JAVA应用程序时间处理。 在代码评审环节,大佬们给出的意见时,万一出现时间不一致的情况,会产生bug 。要改!统一用一个来源的时间 (统一用数据库时间 or 统一用java应用程序时间 )。
大概流程是:
1、 数据写入,用数据库系统时间
insert USER_order (id , lock_time) values ('1', sysdate) 2、超过一分后 时间获取是
new java.util.Date() + 1分钟
基本环境信息:
-
-
- 数据库: ORACLE 11G
- JAVA: 万年不变的JDK8
-
问题定位:
由于决定,统一使用 Oracle数据库的时间,那么问题变成: Oracle中时间获取多少分钟后。在Oracle中可以通过SYSDATE获取当前时间,加上组合 INTERVAL 实现时间的偏移量处理,本文将记录 SYSDATE和INTERVAL函数的用法。
从点到线,本文也会记录 在java程序中,获取多少分钟后,获取多少小时后的时间 .
二、Oracle时间多少秒后
1、oracle 获取当前时间
-- oracle 获取当前时间
SELECTSYSDATE ,SYSTIMESTAMP
FROMdual ;
2、一年之后 , 一年之前的今天
SELECTSYSDATE , SYSDATE + INTERVAL '1' YEAR 一年后, SYSTIMESTAMP + INTERVAL '-1' YEAR "一年前"
FROMdual ;
3、一个月
SELECTSYSDATE , SYSDATE + INTERVAL '1' MONTH , SYSTIMESTAMP + INTERVAL '-1' MONTH
FROMdual ;
4、一天
SELECTSYSDATE , SYSDATE + INTERVAL '1' DAY , SYSTIMESTAMP + INTERVAL '-1' DAY
FROMdual ;
5、 一小时
SELECTSYSDATE , SYSDATE + INTERVAL '1' HOUR , SYSTIMESTAMP + INTERVAL '-1' HOUR
FROMdual ;
6、一分钟
SELECTSYSDATE , SYSDATE + INTERVAL '1' MINUTE , SYSTIMESTAMP + INTERVAL '-1' HOUR
FROMdual ;
7、 10秒钟
SELECTSYSDATE , SYSDATE + INTERVAL '10' SECOND , SYSTIMESTAMP + INTERVAL '-10' SECOND
FROMdual ;
三、Java时间多少秒后
1、使用 DateUtils工具类,依赖pom如下
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.10</version>
</dependency>
2、相关测试代码如下:
/*** Description: java日期 多少分钟后/多少天后* @return void* @version v1.0* @author wu* @date 2023/7/28 18:00*/
@Test
public void dateAddTimeTest() throws Exception{final Date date = new Date();System.out.println("当前时间是:" +DateUtils.format(date,"yyyy-MM-dd HH:mm:ss"));System.out.println();// 1、一年后,一年前final Date date1 = DateUtils.addYears(date, 1);final Date date2 = DateUtils.addYears(date, -1);System.out.println("一年后:" +DateUtils.format(date1,"yyyy-MM-dd HH:mm:ss"));System.out.println("一年前:" +DateUtils.format(date2,"yyyy-MM-dd HH:mm:ss"));System.out.println();// 2、一个月final Date date3 = DateUtils.addMonths(date, 1);final Date date4 = DateUtils.addMonths(date, -1);System.out.println("一个月:" +DateUtils.format(date3,"yyyy-MM-dd HH:mm:ss"));System.out.println("一个月:" +DateUtils.format(date4,"yyyy-MM-dd HH:mm:ss"));System.out.println();// 3、一天final Date date5 = DateUtils.addDays(date, 1);final Date date6 = DateUtils.addDays(date, -1);System.out.println("一天后:" +DateUtils.format(date5,"yyyy-MM-dd HH:mm:ss"));System.out.println("一天前:" +DateUtils.format(date6,"yyyy-MM-dd HH:mm:ss"));// ignore more DateUtils time test ....
}
2.1、输出结果如下:
当前时间是:2023-07-28 18:23:12一年后:2024-07-28 18:23:12
一年前:2022-07-28 18:23:12一个月:2023-08-28 18:23:12
一个月:2023-06-28 18:23:12一天后:2023-07-29 18:23:12
一天前:2023-07-27 18:23:12
四、MyBatis中使用
1、在MyBatis中使用如下,注意使用 ${time} ,不能使用 #{time}
// 注意:拼接成 单引号的字符串 ,具体数值可以改到配置中心/*** 过期时间,单位:秒*/
@Value("${expire.time:60}")
private int expireTime;String time = "'".concat(String.valueOf(expireTime)).concat("'");-- myBatis sql 中写法如下
UPDATE USER_order
SET STATUS = '1'
WHERE LOCK_TIME <= SYSDATE+INTERVAL ${time} SECOND
五、总结
1、Oracle中,实现获取多少时间之后、之前,可以通过 INTERVAL 函数来实现 ,其中 数值 > 0 ,则为之后; 数值 < 0 , 则为之前。
SYSDATE + INTERVAL '10' 单位
单位 可以数值是:
YEAR 年
MONTH 月
DAY 日
HOUR 时
MINUTE 分
SECOND 秒
2、在java程序中,可以使用 DateUtils.addXXX ,实现获取多少时间之前、之后。

相关文章:
Oracle 时间多少秒以后 oracle interval 多少分钟之前 Oracle日期1小时后 Java时间多少秒以后 Java日期多少天之前
Oracle 时间多少秒以后 oracle interval 多少分钟之前 Oracle日期1小时后 Java时间多少秒以后 Java日期多少天之前 一、概述 在项目开发中,遇到一个类似于 超时关闭的订单(超过1分钟后关闭订单) 的需求,在数据的时间写入时&#x…...
自动驾驶之轨迹规划8——Apollo参考线和轨迹
1. abstract 本文主要讲解routing和planning模块中的reference line,我之前一直搞不明白这个reference line是如何生成的,有什么作用,和routing以及planning的关系。现在有了一些心得打算梳理一下: 决策规划模块负责生成车辆的行…...
ES6 - promise.all和race方法的用法详解
文章目录 一、前言二、Promise.all()1,第一句:Promise.all()方法接受一个数组作为参数,且每一个都是 Promise 实例2,第二句:如果不是,就会先调Promise.resolve方法,将参数转为 Promise 实例再进…...
CAD .NET 15.0 企业版 Crack
CAD .NET 15.0 企业版 企业版 企业版 企业版 企业版 Updated: June 14, 2023 | Version 15.0 NEW CAD .NET is a library for developing solutions in .NET environment. It supports AutoCAD DWG/ DXF, PLT and other CAD formats. The library can be used in a wide rang…...
苍穹外卖day07——缓存菜品套餐+购物车功能实现
缓存菜品——需求设计与分析 问题说明 用户访问量过大带来的一个直接效果就是响应速度慢,使用体验下降。 实现思路 使用redis缓存菜品数据,减少数据库查询操作。 页面展示上基本就是同一个分类在同一页,所以key-value结构可以使用不同的分…...
学习笔记|大模型优质Prompt开发与应用课(二)|第四节:大模型帮你写代码,小白也能做程序
文章目录 01软件开发产业趋势与技术革新软件开发产业趋势与技术革新技术性人才很受欢迎软件开发产业趋势与技术革新技术门槛越来越低 02 大模型驱动的软件开发需求分析prompt 产品设计开发和测试prompt输出回复promptpromptprompt回复 发布和部署promptprompt 维护和更新prompt…...
建造者设计模式 + 高阶函数 => DSL
该设计模式适用于创建复杂对象,该复杂对象通常是由各个部分的子对象用一定的算法或者步骤构成,针对每个子对象内部算法和步骤通常是稳定的,但是该复杂对象的确实由于不同的需求而选择使用不同的子对象进行组装。对于构建该复杂的对象…...
重学C++系列之智能指针简单介绍
一、什么是智能指针 在使用堆内存时,就像使用栈内存空间一样,可以实现自释放的功能,智能指针在C库中也是类模板之一。 二、智能指针有几种 有四种。auto_ptr, unique_ptr, shared_ptr, weak_ptr 其中后三个是C11支持,第一个已经被…...
LabVIEW开发航天器动力学与控制仿真系统
LabVIEW开发航天器动力学与控制仿真系统 计算机仿真是工程设计和验证的非常有用的工具。它节省了大量的时间、金钱和精力。航天器动力学与控制仿真系统由LabVIEW程序开发,它是模拟航天器等动态系统的有用工具。还可轻松与硬件连接并输出真实信号。 项目采用系统工…...
享元模式——实现对象的复用
1、简介 1.1、概述 当一个软件系统在运行时产生的对象数量太多,将导致运行代价过高,带来系统性能下降等问题。例如,在一个文本字符串中存在很多重复的字符,如果每个字符都用一个单独的对象来表示,将会占用较多的内存…...
【GreenDao】关联表实现,父表关联多个子表
要在GreenDao中实现温湿度采集器表和采集数据表的关联,并在删除温湿度表时同时删除对应的采集数据,可以按照以下步骤进行操作: 在GreenDao的实体类中定义温湿度采集器表(Parent Table)和采集数据表(Child …...
python网站创建005:数据交互
目标:本章讲解不同控件下, 数据在前端和后端之间的交互 控件有: 输入框 密码输入框 单选框 多选框 下拉框 多行文本框 不同控件中如何将数据传入后端?请看一下html代码 <!DOCTYPE html> <html> <head><meta …...
golang 字符串操作、处理
一、golang的字符串长度 1. len()内置系统函数,计算字符串结果是字符串的字节长度,不是字符长度 //1.ASCII字符串长度(字节长度) str1 : "wo ai zhong guo" fmt.Println(len(str1)) //15//2.带中文的字符串长度&…...
Nginx配置WebSocket反向代理
1、WebSocket协议 WebSocket协议相比较于HTTP协议成功握手后可以多次进行通讯,直到连接被关闭。但是WebSocket中的握手和HTTP中的握手兼容,它使用HTTP中的Upgrade协议头将连接从HTTP升级到WebSocket。这使得WebSocket程序可以更容易的使用现已存在的…...
devops(后端)
1.前言 该devpos架构为gitlabjenkinsharbork8s,项目是java项目,流程为从gitlab拉取项目代码到jenkins,jenkins通过maven将项目代码打成jar包,通过dockerfile构建jdk环境的镜像并把jar包放到镜像中启动,构建好的镜像通…...
Ubuntu安装企业微信
Ubuntu安装企业微信_ubuntu下安装企业微信_星光2020的博客-CSDN博客 在Ubuntu环境安装企业微信可以参考 https://github.com/zq1997/deepin-wine 所述的方法 首先运行 $ wget -O- https://deepin-wine.i-m.dev/setup.sh | sh 然后就可以像安装其它软件一样安装企业微信或其它…...
Prometheus 的应用服务发现及黑河部署等
目录 promtool检查语法 部署Prometheus Server 检查语法是否规范 部署node-exporter 部署Consul 直接请求API进行服务注册 使用register命令注册服务(建议使用) 单个和多个注册,多个后面多加了s 在Prometheus上做consul的服务发现 部署…...
JAVA SE -- 第十二天
(全部来自“韩顺平教育”) 常用类 一、包装类 1、包装类的分类 ①针对八种基本数据类型相应的引用类型--包装类 ②有了类的特点,就可以调用类中的方法 ③ 基本数据类型包装类booleanBooleancharCharacterbyteByteshortShortintInteger…...
实战:工作中对并发问题的处理
大家好,我是 方圆。最近在接口联调时发生了数据并发修改问题,我想把这个问题讲解一下,并把当时提出的解决方案进行实现,希望它能在大家以后在遇到同样的问题时提供一些借鉴和思考的方向。原文还是收录在我的 Github: enthusiasm 中…...
腾讯云Cloud Studio:基于Claude快速完成Excel工资自动核算
目录 1 什么是Cloud Studio?2 注册与代码管理2.1 账号注册2.2 Git关联 3 实战:Excel工资自动核算3.1 创建项目与配置3.2 “念咒师”Claude GPT3.3 代码编写与运行 1 什么是Cloud Studio? Cloud Studio是腾讯云为开发者提供的一个基于浏览器的…...
Word文档保护技巧:防止内容被轻易复制
Word文档如何防止复制呢?其实,Word根本没有真正意义上的禁止复制,因为用户按一下手机截图,或者拍张照片,内容照样能拿走。但是,我们可以提高复制门槛,也就是让其他用户通过“CtrlC”无法直接复制…...
Q学习入门:用DQN训练乒乓AI的原理与实操
1. 项目概述:从乒乓游戏切入,理解Q学习如何让AI学会“思考下一步”你有没有试过盯着一个简单的乒乓球游戏界面发呆?球正朝右下角飞来,挡板在屏幕左侧,此时你的手指悬在键盘上方——是按上、按下,还是不动&a…...
RISC-V指令类型及核心功能解析
RV32I指令集通过六种基本指令格式(R、I、S、B、U、J)实现其核心功能,其中U型指令主要用于长立即数加载,而R、I、S、B、J型指令则承担了计算、访存、控制流等关键操作。根据博客内容提供的指令映射表(表2.3)…...
从模糊到微距级细节:Midjourney纹理生成的6层提示结构法(工业级纹理资产生产标准)
更多请点击: https://kaifayun.com 第一章:从模糊到微距级细节:Midjourney纹理生成的6层提示结构法(工业级纹理资产生产标准) 在游戏、影视与工业设计领域,高质量纹理资产需同时满足物理可信性、UV可平铺性…...
2026免费在线去水印软件推荐:优缺点对比与测评
在2026年,处理带有水印的图片、视频和文档已经成为许多人日常工作中的常见需求。无论是内容创作者、自媒体运营者,还是普通用户,偶尔都需要从素材中移除水印。本文将全面介绍当前免费在线去水印软件的最新情况,帮助你了解各工具的…...
ElevenLabs波斯文TTS落地难题全破解:从Unicode乱码、音节切分失败到自然语调合成的5大技术卡点
更多请点击: https://codechina.net 第一章:ElevenLabs波斯文TTS落地难题全破解:从Unicode乱码、音节切分失败到自然语调合成的5大技术卡点 波斯文(Farsi)作为右向左(RTL)、连字密集、元音隐含…...
Esp32Robot入门04-服务端架构与本地Docker拉起(实战进阶:手把手教你用Docker部署小智助手服务端)
Esp32Robot入门04-服务端架构与本地Docker拉起(实战进阶:手把手教你用Docker部署小智助手服务端) 📌 文章简介: 在AI智能硬件开发中,ESP32-S3因高性价比备受青睐,但面对千亿参数的本地大模型与高…...
如何打破闭源代码智能模型的垄断?DeepSeek-Coder-V2的技术突围与实践指南
如何打破闭源代码智能模型的垄断?DeepSeek-Coder-V2的技术突围与实践指南 【免费下载链接】DeepSeek-Coder-V2 DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence 项目地址: https://gitcode.com/GitHub_Trending/de/DeepSe…...
中兴B863AV3.2-M刷机避坑指南:S905L3A芯片识别、固件选择与Amlogic USB Burning Tool 2.2.0配置详解
中兴B863AV3.2-M刷机全流程精解:从芯片识别到固件烧录的进阶实践 在智能电视盒的玩家圈子里,中兴B863AV3.2-M因其出色的硬件配置和可玩性备受关注。这款搭载Amlogic S905L3A芯片的设备,通过刷机可以解锁更多功能,但过程中暗藏的&q…...
AI助力!谷歌、苹果让手机开发与个性化定制更简单
App Store 的承诺与现状“有个应用程序能搞定”,这是 App Store 从一开始的承诺,用户轻点几下就能找到让手机实现所需功能的应用程序。不过,至今仍未出现完美的购物清单应用程序。尽管如此,应用程序的确将现代智能手机塑造成了如今…...
