Oracle 时间多少秒以后 oracle interval 多少分钟之前 Oracle日期1小时后 Java时间多少秒以后 Java日期多少天之前

这篇具有很好参考价值的文章主要介绍了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 获取当前时间
SELECT
    SYSDATE ,
    SYSTIMESTAMP
FROM
    dual ;

2、一年之后 , 一年之前的今天

SELECT
    SYSDATE 
    ,  SYSDATE + INTERVAL '1' YEAR 一年后
    , SYSTIMESTAMP + INTERVAL '-1' YEAR "一年前"
FROM
    dual ;

3、一个月

SELECT
    SYSDATE 
    ,  SYSDATE + INTERVAL '1' MONTH  
    , SYSTIMESTAMP + INTERVAL '-1' MONTH 
FROM
    dual ;

4、一天

SELECT
    SYSDATE 
    ,  SYSDATE + INTERVAL '1' DAY  
    , SYSTIMESTAMP + INTERVAL '-1' DAY 
FROM
    dual ;

5、 一小时

SELECT
    SYSDATE 
    ,  SYSDATE + INTERVAL '1' HOUR  
    , SYSTIMESTAMP + INTERVAL '-1' HOUR 
FROM
    dual ;

6、一分钟

SELECT
    SYSDATE 
    ,  SYSDATE + INTERVAL '1' MINUTE  
    , SYSTIMESTAMP + INTERVAL '-1' HOUR 
FROM
    dual ;

7、 10秒钟

SELECT
    SYSDATE 
    ,  SYSDATE + INTERVAL '10' SECOND  
    , SYSTIMESTAMP + INTERVAL '-10' SECOND 
FROM
    dual ;

三、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日期多少天之前,DB,# DB-Oracle,Java,oracle多少时间之后,java多少时间之后,Oracle interval,Oracle日期1小时后,Java日期多少天之前文章来源地址https://www.toymoban.com/news/detail-619001.html

到了这里,关于Oracle 时间多少秒以后 oracle interval 多少分钟之前 Oracle日期1小时后 Java时间多少秒以后 Java日期多少天之前的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • antdesginVue a-date-picker(日期时间选择器)禁用当前时间之前的时间,包含时分秒

    话不多说直接上效果 1、禁用当前时间和之前的时间 2、禁用当前时间和之后的时间

    2024年02月11日
    浏览(46)
  • Oracle格式化日期

    将oralce中时间格式为XXX年XX月XX日,如下图: 需要给年月日 添加引号 ,如to_char(sysdate,\\\'yyyy \\\"年\\\" mm \\\"月\\\" dd \\\"日\\\" \\\' );

    2024年02月15日
    浏览(35)
  • oracle,获取每日24*60,所有分钟数

            为规范用户的时间录入,因此我们采用下拉的方式,让用户选择需要的时间,因此我们需要将一天24小时的时间拆分为类似00:00,00:01...23:00,23:01,23:59。因此我们需要生成24*60=1440行的下拉复选值。具体效果如下图所示。         哈哈哈,从数据的结构来看,又是树状的

    2024年02月15日
    浏览(28)
  • Mysql和Oracle创建日期和修改日期设置为自动生成

    1.Mysql 自动获取创建时间:timestamp not null default CURRENT_TIMESTAMP 自动获取更新时间:timestamp not null default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP 1.1.建表语句 2. Oracle 2.1.建表语句 2.2.利用触发器设置更新时间 userinfo:是表名 modify_time:执行update需要自动更新的字段

    2024年02月09日
    浏览(36)
  • oracle查询日期为当天的数据sql

    可以使用 Oracle 的函数 SYSDATE 来获取当前日期。例如,要查询表 mytable 中日期为当天的数据,可以使用以下 SQL 语句: 请注意,如果 date_column 类型为 DATE ,则上述语句可能会产生错误,因为 SYSDATE 返回的是日期和时间。在这种情况下,可以使用以下语句来解决这个问题: TR

    2024年02月13日
    浏览(29)
  • oracle日期加减的三种方式

    直接加减数字 使用add_months()函数 使用interval()函数 这里需要注意的是,interval() 函数的精度问题。 精度数值范围是 1-9,不写默认值是 2,精度不匹配时间差数值会报错. select sysdate + interval \\\'100\\\' year from dual;-- ORA-01873: 间隔的前导精度太小 此时,‘111’ 为 3 位有效数值,该处

    2024年02月04日
    浏览(31)
  • Oracle 列出一天内每5分钟一条数据

    效果如图, 类似的 列出一年内每天、每个月也是用connect by搭配rownum使用

    2024年02月16日
    浏览(31)
  • 解决Oracle数据库中日期格式不识别的问题

    在数据库开发中,我们经常需要处理日期和时间数据。当我们在Oracle数据库中执行UPDATE语句时,可能会遇到ORA-01821错误,该错误表示提供的日期格式无法被数据库识别。本文将介绍如何解决Oracle数据库中日期格式不识别的问题。 问题分析: ORA-01821错误是由于提供的日期字符

    2024年02月09日
    浏览(36)
  • Oracle Scheduler中日期表达式和PLSQL表达式的区别

    参考文档: 29.4.5.4 Differences Between PL/SQL Expression and Calendaring Syntax Behavior There are important differences in behavior between a calendaring expression and PL/SQL repeat interval. These differences include the following: Start date Using the calendaring syntax, the start date is a reference date only. Therefore, the schedule is valid as

    2024年02月09日
    浏览(27)
  • MySQL 计算两个日期/时间之间相差的天数、分钟数、秒数...

    MySQL 中经常遇到计算两个日期或者时间之间相差的天数、周数、小时数、分钟、秒等等,下面分享一个MySQL内置的函数:TimeStampDiff() 这个函数是MySQL本身提供的可以计算两个时间间隔的函数。 语法: 返回日期或日期时间表达式 datetime_expr1 和datetime_expr2the 之间的整数差 其中

    2024年02月14日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包