Oracle 计算timestamp和date类型的时间差

2024-05-26 12:32

本文主要是介绍Oracle 计算timestamp和date类型的时间差,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先是计算timestamp类型的时间差,

下面以秒为Demo:

SELECT
*
FROM
swap_park_record T
WHERE
ROUND (
TO_NUMBER (
TO_DATE (
TO_CHAR (
SYSDATE,
'yyyy-mm-dd hh24:mi:ss'
),
'yyyy-mm-dd hh24:mi:ss'
) - TO_DATE (
TO_CHAR (
T .ARRIVE_TIME,
'yyyy-mm-dd hh24:mi:ss'
),
'YYYY-MM-DD HH24:mi:ss'
)
) * 24 * 60 * 60
) > 60
AND "ID" = '4077785';

计算当前时间和某个字段时间差大于60秒的计算。

详细:

TIMESTAMP数据类型:是DATE的扩展,可以存储年、月、日、小时、分钟、秒,同时还可以存储秒的小数部分。

通过to_timestamp函数将date型转成这种类型,来看看它的形式

详见代码:

Sql代码   收藏代码
  1. SELECT TO_TIMESTAMP('2009-7-30','yyyy-mm-dd')  
  2.   FROM dual  

 
结果为:30-7月 -09 12.00.00.000000000 上午

 

timestamp以日期格式输出表示 :

Sql代码   收藏代码
  1.  select TO_CHAR(to_timestamp('2009-7-30','yyyy-mm-dd hh24:mi:ss') ,'YYYY-MM-DD HH24:MI:SS')  
  2.   from dual  

 
结果为:2009-07-30 00:00:00

 

date格式的时间差,以秒为单位:

Sql代码   收藏代码
  1. select (to_date('2009-7-30''yyyy-mm-dd hh24:mi:ss') -  
  2.        to_date('2009-7-29''YYYY-MM-DD HH24:mi:ss')) * 86400 as "itvtime"  
  3.  from dual  

 

结果为:86400

 

timestamp格式求时间差,以秒为单位:

Sql代码   收藏代码
  1. select (to_date(TO_CHAR(to_timestamp('2009-7-30','yyyy-mm-dd hh24:mi:ss') , 'yyyy-mm-dd hh24:mi:ss'),  
  2.                 'yyyy-mm-dd hh24:mi:ss') -  
  3.        to_date(TO_CHAR(to_timestamp('2009-7-29','yyyy-mm-dd hh24:mi:ss') , 'yyyy-mm-dd hh24:mi:ss'),  
  4.                 'YYYY-MM-DD HH24:mi:ss')) * 86400 as "itvtime"  
  5.  from dual  

 结果为:86400

 

求任意timestamp格式的时间戳,据1970年01月01日的毫秒数:

Sql代码   收藏代码
  1. SELECT (to_date(TO_CHAR(to_timestamp('2009-7-30','yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') -  
  2.        to_date('1970-01-01 00:00:00''YYYY-MM-DD HH24:mi:ss')) * 86400000  
  3.   FROM dual  

 结果为:1248912000000


应用:具体应用时将例子中to_timestamp()阴影部分代码换成相应字段即可(该字段是timestamp格式)

          与得到以分为单位或小时为单位只需要变乘的数即可

虽然实现了时间差的计算,自我感觉比较复杂化,希望找到比较简便的方法。。。

 

 

根据日期求当月天数

Sql代码   收藏代码
  1. select add_months(trunc(to_date('2009-9''yyyy-mm'), 'mm'), 1)   
  2.        - trunc(to_date('2009-9''yyyy-mm'), 'mm')  
  3.   from dual  

二。

计算date类型的时间差:

两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差(分别以天,小时,分钟,秒,毫秒):

天:

ROUND(TO_NUMBER(END_DATE - START_DATE))

小时:

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24)

分钟:

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60)

秒:

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60)

毫秒:

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60 * 1000)


其他参考链接:http://blog.csdn.net/jojo52013145/article/details/6998984

这篇关于Oracle 计算timestamp和date类型的时间差的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1004474

相关文章

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Oracle修改端口号之后无法启动的解决方案

《Oracle修改端口号之后无法启动的解决方案》Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生,这一问题通常源于​​配置错误或环境冲突​​,而非端口修改本身,以下是系... 目录一、问题根源分析​​​二、保姆级解决方案​​​​步骤1:修正监听器配置文件 (listener.

Java计算经纬度距离的示例代码

《Java计算经纬度距离的示例代码》在Java中计算两个经纬度之间的距离,可以使用多种方法(代码示例均返回米为单位),文中整理了常用的5种方法,感兴趣的小伙伴可以了解一下... 目录1. Haversine公式(中等精度,推荐通用场景)2. 球面余弦定理(简单但精度较低)3. Vincenty公式(高精度,

Oracle 通过 ROWID 批量更新表的方法

《Oracle通过ROWID批量更新表的方法》在Oracle数据库中,使用ROWID进行批量更新是一种高效的更新方法,因为它直接定位到物理行位置,避免了通过索引查找的开销,下面给大家介绍Orac... 目录oracle 通过 ROWID 批量更新表ROWID 基本概念性能优化建议性能UoTrFPH优化建议注

PostgreSQL 序列(Sequence) 与 Oracle 序列对比差异分析

《PostgreSQL序列(Sequence)与Oracle序列对比差异分析》PostgreSQL和Oracle都提供了序列(Sequence)功能,但在实现细节和使用方式上存在一些重要差异,... 目录PostgreSQL 序列(Sequence) 与 oracle 序列对比一 基本语法对比1.1 创建序

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

《Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码》:本文主要介绍Java中日期时间转换的多种方法,包括将Date转换为LocalD... 目录一、Date转LocalDateTime二、Date转LocalDate三、LocalDateTim

Pydantic中Optional 和Union类型的使用

《Pydantic中Optional和Union类型的使用》本文主要介绍了Pydantic中Optional和Union类型的使用,这两者在处理可选字段和多类型字段时尤为重要,文中通过示例代码介绍的... 目录简介Optional 类型Union 类型Optional 和 Union 的组合总结简介Pyd

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数