Oracle毫秒:从多个方面详解

一、Oracle毫秒数

在Oracle数据库中,日期类型使用毫秒数(以1970年1月1日为基准点,即UNIX_TIMESTAMP)作为存储方式。因此,我们可以通过获取时间的毫秒数来操作日期,比如在WHERE语句中进行时间范围查询。


--获取当前时间的毫秒数
SELECT SYSDATE, TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss'), (SYSDATE - TO_DATE('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss')) * 24 * 60 * 60 * 1000 AS MILLISECOND FROM DUAL;

--获取某个时间的毫秒数
SELECT TO_TIMESTAMP('2018-05-21 11:22:33','yyyy-mm-dd hh24:mi:ss') AS TIMESTAMP, (TO_TIMESTAMP('2018-05-21 11:22:33','yyyy-mm-dd hh24:mi:ss') - TO_DATE('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss')) * 24 * 60 * 60 * 1000 AS MILLISECOND FROM DUAL;

二、Oracle毫秒转换为年月日时分秒

将毫秒数转换为可读的日期时间格式是我们常遇到的需求。Oracle可以使用TO_CHAR函数实现。


--毫秒数转换为标准的年月日时分秒格式
SELECT TO_CHAR(TO_DATE('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss') + (1526866927432 / 1000 / 60 / 60 / 24),'yyyy-mm-dd hh24:mi:ss') AS DATETIME FROM DUAL;

三、Oracle毫秒格式

在Oracle中,相比其他类型的日期,毫秒数的表示方式稍有不同。Oracle采用分数形式的小数(即1/24/60/60/1000)表示毫秒数,且默认情况下是保留6位精度。因此,需要注意精度和格式的问题,否则可能导致计算结果不准确。

四、Oracle毫秒时间格式

Oracle提供很多内置函数来对日期时间格式进行处理,使用这些函数能够大大简化操作。比如,TO_TIMESTAMP函数可以将字符串转换为日期类型,TO_CHAR函数可以将日期类型转换为字符串类型,而EXTRACT函数可以从日期类型中提取出需要的部分。


--将毫秒数转换为时间格式
SELECT TO_CHAR(TO_TIMESTAMP('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss') + NUMTODSINTERVAL(1526866927432,'MILLISECOND'),'yyyy-mm-dd hh24:mi:ss') AS DATETIME FROM DUAL;

--从时间中提取出毫秒数
SELECT EXTRACT(MILLISECOND FROM TO_TIMESTAMP('2018-05-21 11:22:33.123456','yyyy-mm-dd hh24:mi:ss.ff6')) AS MILLISECOND FROM DUAL;

五、Oracle毫秒转时间

毫秒数和时间之间的相互转换,在Oracle操作中非常频繁。使用$numtodsinterval函数可以将毫秒数转换为时间类型,而用extract函数则可以将时间类型转换为毫秒数。


--毫秒数转换为时间
SELECT NUMTODSINTERVAL(1526866927432,'MILLISECOND') AS DURATION FROM DUAL;

--时间转换为毫秒数
SELECT EXTRACT(MILLISECOND FROM NUMTODSINTERVAL(1,'HOUR') + NUMTODSINTERVAL(1,'MINUTE') + NUMTODSINTERVAL(1,'SECOND') + NUMTODSINTERVAL(1,'MILLISECOND')) AS MILLISECOND FROM DUAL;

六、Oracle毫秒相减

在Oracle中,可以将两个日期类型相减得到它们之间的间隔。这点对于计算时间差或是时间区间等操作非常便捷。使用($$date1-$$date2)*24*60*60*1000可以将两个日期相减后求得毫秒数。


--计算时间差(单位为毫秒)
SELECT (TO_DATE('2018-05-31 13:40:00','yyyy-mm-dd hh24:mi:ss') - TO_DATE('2018-05-10 10:08:32','yyyy-mm-dd hh24:mi:ss')) * 24 * 60 * 60 * 1000 AS DURATION FROM DUAL;

七、Oracle毫秒转日期

在Oracle中,DATE类型可以通过加减操作来进行位移,可以便捷地计算出特定日期之后或之前的日期。


--将毫秒数转换为日期
SELECT TO_CHAR(TO_DATE('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss') + NUMTODSINTERVAL(1526866927432,'MILLISECOND'),'yyyy-mm-dd') AS DATE FROM DUAL;

--计算2天之后的日期
SELECT TO_CHAR(TO_DATE('2018-05-21 11:22:33','yyyy-mm-dd hh24:mi:ss') + 2,'yyyy-mm-dd hh24:mi:ss') AS DATE FROM DUAL;

八、Oracle毫秒数转化为日期

有时候我们需要将毫秒数转化为日期类型,可以使用TO_DATE函数将毫秒数转化为字符串类型,再使用TO_DATE函数将字符串类型转化为日期类型。


--将毫秒数转化为日期
SELECT TO_DATE(TO_CHAR(TO_DATE('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss') + NUMTODSINTERVAL(1526866927432,'MILLISECOND'),'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') AS DATE FROM DUAL;

九、Oracle毫秒数转日期

使用TO_CHAR函数,可以将毫秒数转换为特定格式的日期类型。


--毫秒数转换为日期类型
SELECT TO_CHAR(TO_DATE('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss') + (1526866927432 / 1000 / 60 / 60 / 24),'yyyy-mm-dd hh24:mi:ss') AS DATE FROM DUAL;

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/198502.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-12-04 10:25
下一篇 2024-12-04 10:25

相关推荐

  • 寂静岭剧情详解(寂静岭结局解析)

    但到了表世界,就是灰蒙蒙的景象。到了里世界,就是丧尸蟑螂怪的天下了。而处于这三个世界的人又看不到彼此,这就是为什么当男主和女主在同一个空间与时间的时候却不能相 当清楚了表里世界观后…

  • Oracle登录sys用户详解

    一、oracle登录sys用户口令 1、在oracle中,sys用户是系统管理员,登录sys用户需要输入口令。 2、默认情况下,oracle安装后sys用户不需要输入口令登录系统。…

    编程 2025-01-13
  • Python CSV模块详解

    Python是一种广泛使用的高级编程语言,常被应用于Web开发、数据分析、人工智能等领域。在Python中,有许多内置模块可以使用,其中一个非常常见且实用的模块就是CSV模块。在本…

    编程 2025-01-13
  • MasterAuth详解

    一、MasterAuth EOF MasterAuth是一种基于Redis的轻量级认证鉴权系统,可以为不同的应用和服务提供安全认证和访问控制。它通过Redis作为数据存储,支持多种…

    编程 2025-01-13
  • Idea更改JDK详解

    一、Idea更改JDK版本 Idea是一款非常常用的Java开发工具,使用时需要配置对应的JDK版本。在项目开发的不同阶段,我们可能需要更换JDK版本。 更改JDK版本的步骤如下:…

    编程 2025-01-13
  • CRC算法详解

    一、CRC算法概述 CRC(Cyclic Redundancy Check) 算法是一种数据校验算法,广泛应用于数据通信领域。该算法通过将消息转换成多项式,并使用一些预定义的多项式…

    编程 2025-01-13
  • Android:tint详解

    一、概述 Android:tint是一个非常有用的属性,它可以让我们在不改变原有资源的情况下改变资源的颜色,比如ImageView和Button等组件的图标或背景。在UI设计中,这…

    编程 2025-01-13
  • fs.readdirSync的应用与案例详解

    Node.js中的文件系统模块(fs模块)提供了许多API用于处理文件和目录。其中,fs.readdirSync()函数是Node.js中最常用的文件和文件夹处理函数之一。fs.r…

    编程 2025-01-13
  • Golang定时任务详解

    一、什么是Golang定时任务 Golang定时任务是一种可以自动按照设定时间执行指定任务的机制。简而言之,是一种可以预先设定好某些指令在特定时间点运行的机制。 Golang为开发…

    编程 2025-01-13
  • 从多个方面深入探讨对象转string

    一、对象转string类型 对象转string是一个开发中经常会用到的操作。JavaScript中提供了许多方法可以帮助我们将对象转换为字符串。其中一种最常见的方法是将Object…

    编程 2025-01-13

发表回复

登录后才能评论