ORACLE DATE和TIMESTAMP数据类型的比较(一) 转载自csdn

解决nfs挂载根文件系统报错:VFS: Unable to mount root fs via NFS, trying floppy. 解决nfs挂载根文件系统报错的问题:VFS: Unable to mount root fs via NFS, trying floppy. 阅读详情

原著作者:James Koopmann

如果你想在ORACLE中存储DATE和时间信息的话,实际上你由两种字段数据类型的选择的话,就让我们看看这两种数据类型的差别和它们提供了些什么。

 

      DATE数据类型

这个数据类型我们实在是太熟悉了,当我们需要表示日期和时间的话都会想到date类型。它可以存储月,年,日,世纪,时,分和秒。它典型地用来表示什么时候事情已经发生或将要发生。DATE数据类型的问题在于它表示两个事件发生时间间隔的度量粒度是秒。这个问题将在文章稍后讨论timestamp的时候被解决。可以使用TO_CHAR函数把DATE数据进行传统地包装,达到表示成多种格式的目的。

SQL> SELECT TO_CHAR(date1,'MM/DD/YYYY HH24:MI:SS') "Date" FROM date_table;

Date

---------------------------

06/20/2003 16:55:14

06/26/2003 11:16:36

 

我见到的大多数人陷入的麻烦就是计算两个时间间的间隔年数、月数、天数、小时数和秒数。你需要明白的是,当你进行两个日期的相减运算的时候,得到的是天数。你需要乘上每天的秒数(1天=86400秒),然后,你可以再次计算得到你想要的间隔数。下面就是我的解决方法,可以精确计算出两个时间的间隔。我明白这个例子可以更简短些,但是我是为了显示所有的数字来强调计算方式。

1         SELECT TO_CHAR(date1,'MMDDYYYY:HH24:MI:SS') date1,

  2         TO_CHAR(date2,'MMDDYYYY:HH24:MI:SS') date2,

  3         trunc(86400*(date2-date1))-

  4         60*(trunc((86400*(date2-date1))/60)) seconds,

  5         trunc((86400*(date2-date1))/60)-

  6         60*(trunc(((86400*(date2-date1))/60)/60)) minutes,

  7         trunc(((86400*(date2-date1))/60)/60)-

  8         24*(trunc((((86400*(date2-date1))/60)/60)/24)) hours,

  9         trunc((((86400*(date2-date1))/60)/60)/24) days,

 10         trunc(((((86400*(date2-date1))/60)/60)/24)/7) weeks

 11*        FROM date_table

DATE1             DATE2                SECONDS    MINUTES      HOURS      DAYS      WEEKS

----------------- ----------------- ---------- ---------- ---------- ---------- ----------

06202003:16:55:14 07082003:11:22:57         43         27         18        17          2

06262003:11:16:36 07082003:11:22:57         21          6          0        12          1

 

TIMESTAMP 数据类型

DATE数据类型的主要问题是它粒度不能足够区别出两个事件哪个先发生。ORACLE已经在DATE数据类型上扩展出来了TIMESTAMP数据类型,它包括了所有DATE数据类型的年月日时分秒的信息,而且包括了小数秒的信息。如果你想把DATE类型转换成TIMESTAMP类型,就使用CAST函数。

SQL> SELECT CAST(date1 AS TIMESTAMP) "Date" FROM t;

Date

-----------------------------------------------------

20-JUN-03 04.55.14.000000 PM

26-JUN-03 11.16.36.000000 AM

 

正如你看到的,在转换后的时间段尾部有了一段“.000000”。这是因为从date转换过来的时候,没有小数秒的信息,缺省为0。而且显示格式是按照参数NLS_TIMESTAMP_FORMAT定的缺省格式显示。当你把一个表中date类型字段的数据移到另一个表的timestamp类型字段中去的时候,可以直接写INSERT SELECT语句,oracle会自动为你做转换的。

1  SELECT TO_CHAR(time1,'MM/DD/YYYY HH24:MI:SS') "Date" FROM date_table

Date

-------------------

06/20/2003 16:55:14

06/26/2003 11:16:36

 

别再为倍福EL6021/EL6022的RS485接线头疼了!手把手教你硬件跳线与软件配置(附Modbus RTU主站例程) 本文详细解析了倍福EL6021/EL6022模块的RS485硬件跳线与软件配置方法,包括Modbus RTU主站编程实战。从端子定义、跳线操作到TwinCAT 3环境设置,提供完整的通信例程和故障排查技巧,帮助工程师快速解决工业现场通信问题。 阅读详情

相关推荐

用74LS160和74LS194搭个复古流水灯:从Multisim仿真到面包板实战(附完整电路图)

本文详细介绍了如何使用74LS160和74LS194芯片搭建复古流水灯电路,从Multisim仿真到面包板实战的全过程。通过解析核心器件特性、提供完整材料清单、仿真验证电路逻辑,以及实际搭建中的布局规划和调试技巧,帮助电子爱好者掌握这一经典数字电路设计项目。

weixin_28736355的博客 388

ORACLE DATE和TIMESTAMP数据类型的比较(一)

原著作者:James Koopmann如果你想在ORACLE中存储DATE和时间信息的话,实际上你由两种字段数据类型的选择的话,就让我们看看这两种数据类型的差别和它们提供了些什么。       DATE数据类型这个数据类型我们实在是太熟悉了,当我们需要表示日期和时间的话都会想到date类型。它可以存储月,年,日,世纪,时,分和秒。它典型地用来表示什么时候事情已经发生或将要发生。DA

enhydraboy的专栏 2515

Delphi 12社区版免费了!手把手教你搭建跨平台开发环境(Windows/macOS/Android/iOS)

本文详细介绍了如何利用新发布的Delphi 12社区版,免费搭建支持Windows、macOS、Android和iOS的跨平台开发环境。内容涵盖从环境准备、安装、配置各平台SDK(包括Android与macOS/iOS的PAServer连接),到创建首个FireMonkey跨平台应用、集成数据库以及调试部署的完整实战流程,帮助开发者零成本启动高效开发。

butter的博客 979

oracle中日期类型DATE、TIMESTAMP

1、DATE类型精确到秒,TIMESTAMP类型精确到秒的小数, 2、date类型相减,得到的结果为整型,单位是天。 timestamp类型相减,或者timestamp与date类型相减,得到的结果是INTERVAL。 date与timestamp类型加减一个数值,得到的类型为date。 3、oracle中的日期可以直接计算,加1就是1天,加1/24就是1小时,加1/24/60就是1分钟。 4、timestamp类型与数值加减得到的是date类型,损失了精度。可以是有时间间隔类型处理,通过INTE

45画的博客 4749

UE5 VlcMedia 插件编译与流媒体播放实战

本文详细介绍了在虚幻引擎5中编译并集成VlcMedia插件以解决流媒体播放难题的实战指南。针对UE5不再默认支持Win32 API导致的编译错误,文章提供了核心的构建配置文件修改步骤,并指导如何启用插件、创建VLC媒体播放器,最终成功播放如.m3u8等格式的网络直播流或点播视频。

weixin_29013129的博客 339

Agent本地部署教程详细步骤

在开始之前,你需要明确你要部署的Agent是什么。如果你需要部署其他Agent,请参考其官方文档调整步骤。

weixin_39673931的博客 2503

Oracle的数据类型date,oracle数值类型--DATE、TIMESTAMP和INTERVAL类型

Oracle固有数据类型DATE、TIMESTAMP和INTERVAL是紧密相关的。DATE和TIMESTAMP类型存储精度可变的固定日期/时间。INTERVAL类型可以很容易地存储一个时间量,如“8个小时”或“30天”。许多新应用都在使用TIMESTAMP类型,这有两个原因:一方面它支持小数秒,而DATE类型不支持;另一方面TIMESTAMP类型支持时区,这也是DATE类型力所不能及的。1格式以...

weixin_42097819的博客 1080

【迁移学习】域对抗迁移网络 DANN

Domain-Adversarial Training of Neural Networks

这个博客太懒了什么都没说 8417

oracle timestamp 比较大小

TYPE_TIMESTAMP > to_timestamp('2012-07-28 00:00:0.000000000', 'yyyy-mm-dd hh24:mi:ss.ff9')

jason_deng的专栏 3万+

ZYNQ PL通过EMIO ETHE1外接PHY由GMII转RGMII

1,设置EMIO方式引出ETHE1 2,从GMII过度到RGMII GMII: 发送 gmii_tx_clk gmii_tx_d[7:0] gmii_tx_en gmii_tx_er 接收 gmii_rx_clk gmii_rx_d[7:0] gmii_rx_dv gmii_rx_er RGMII: 发送 tx_clk tx_d[3:0] tx_ctrl 接收 rx_clk rx_d[3:0] rx_ctrl 首先数据总线从时钟单边沿采样8bit转变为了双边沿采样4bit,从88E1

wangjie36的博客 1万+

SAP 系统和银行系统通过 SM2 加密算法进行集成

SM2 是基于椭圆曲线离散对数问题(ECDLP)的一种公钥密码算法。椭圆曲线加密的核心原理,是利用了一个数学难题:在椭圆曲线群上,已知曲线上两点的运算结果,逆向推导出这两个点的具体信息是非常困难的。这样的复杂度使得基于椭圆曲线的密码体制比传统的 RSA 更加难以破解。在 SM2 加密中,公钥和私钥的生成与传统的椭圆曲线加密类似。选择一个椭圆曲线和一个基点 P。使用私钥 d,计算公钥 P’ = d * P。私钥 d 保密,而公钥 P’ 可公开分发,用于加密数据。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1212

oracle timestamp怎么查询,oracle运用(一) oracle数据库使用 TIMESTAMP()类型查询数据

1.刚开始,使用PLSQL Developer执行如下SQL语句:select billsell.CREATE_TIMEfrom BILL_SELL billsellWHERE billsell.STATUS <> 9AND billsell.ACTIVE_FLAG = 0AND billsell.STATUS = 2AND billsell.CREATE_TIME >=to_t...

weixin_42355865的博客 7851

【异常】OpenClaw 项目 `fetch failed` 报错问题排查与解决方案Response interrupted: TypeError: fetch failed

针对无超时控制、异常兜底缺失导致的请求中断,封装标准化的安全请求工具,一次性解决超时控制、异常捕获、日志埋点三大问题,全项目替换原生。:将项目运行的 Node.js 版本升级至 18.x 及以上 LTS 版本,使用 Node.js 内置的稳定版。实现的网络请求环节,包括但不限于:第三方开放接口调用、内部服务接口通信、跨域资源请求、外部配置拉取等场景。:针对无法升级 Node.js 版本的存量环境,通过社区稳定兼容包替换原生。类型异常,直接造成业务请求响应中断。第二步:业务代码改造,替换原生。

奶爸的编程之路,也就一周冷个三天 367

ORACLE DATE和TIMESTAMP数据类型的比较(二) 引自csdn

原著作者:James KoopmannTIMESTAMP数据的格式化显示和DATE 数据一样。注意,to_char函数支持date和timestamp,但是trunc却不支持TIMESTAMP数据类型。这已经清楚表明了在当两个时间的差别极度重要的情况下,使用TIMESTAMP数据类型要比DATE数据类型更确切。如果你想显示TIMESTAMP的小数秒信息,参考下面:1  SELECT TO_CHAR

ghyn的专栏 962

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Oracle时间戳实战:从DATE到TIMESTAMP的精度与时区处理

在数据库开发中,时间数据处理是核心基础。DATE类型作为经典日期时间类型,仅支持秒级精度且缺乏时区信息,难以满足高并发系统和全球化应用的需求。其原理基于简单的日期时间存储,在需要毫秒级审计、事件排序或跨时区业务时存在局限。时间戳(Timestamp)技术通过提供微秒级精度和完整的时区管理能力,解决了这些痛点,为分布式系统一致性、全球化时间展示等场景提供了关键技术支撑。本文聚焦Oracle数据库,深入解析TIMESTAMP、TIMESTAMP WITH TIME ZONE等类型的实战应用,涵盖**数据同步**

weixin_34343308的博客 396

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

oracle date 和 timestamp

在今天的工作中,学到了以下几个知识点: 一、date和timestamp 的区别      date类型是Oracle常用的日期型变量,他的时间间隔是秒。两个日期型相减得到是两个时间的间隔,注意单位是“天”。例如:查看一下当前距离伦敦奥运会开幕还有多长时间:        select to_date('2012-7-28 03:12:00','yyyy-mm-dd hh24:m

wuseyukui的专栏 1543

Oracle中的TIMESTAMP数据类型

timestamp格式表示的时间如何转换成普通格式: SQL&gt;   SELECT   to_char(tp,'dd-mm-yyyy   hh24:mi:ss.ff')   FROM   TIMESTAMPTEST;   ////////////////////////////////////////////////////////////////////////////////...

cai555的专栏 1168

简述Oracle基本数据类型

Oracle基本数据类型分类 总共6大类型,具体如下: 字符串类型 数字类型 日期类型 LOB类型 LONG RAW & RAW 类型 ROWID & UROWID 类型 每个类型下详细的数据类型 字符串类型 列表内容

Mike_ToUp 5210

oracle和达梦数据库的区别杂谈

这几天正在做数据库国产化的相关工作,之前的一个项目数据库用的是oracle的,现在要换成达梦的。所以我就把遇到的,需要修改的列出来,本篇文章持续更新中。

ZX5191的专栏 1751

Oracle常用数据类型

类型 含义 存储描述 备注 CHAR 固定长度字符串 最大长度2000bytes   VARCHAR2 可变长度的字符串, 最大长度4000bytes 可做索引的最大长度749 NCHAR 根据字符集而定的固定长度字符串 最大长度2000bytes   NVARCHAR2 根据字符集而定的可变长度字符串...

a71143的博客 145

oracle-timestamp类型处理

DATE类型转换为TIMESTAMP SELECT CAST(sysdate AS TIMESTAMP) from dual; VARCHAR类型转换为TIMESTAMP SELECT CAST(to_date(‘20110419010101’,’yyyy-mm-dd hh24:mi:ss’) AS TIMESTAMP) from dual; TIMESTAMP类型转换...

数据库天地 111

hibernate oracle timestamp(6),在oracle中存入date类型数据遇到的问题及其解决方法(利用java.sql.date和Timestamp)...

1. 使用JDBC操作Oracle数据库时,使用java.sql.Date类型对应数据库的date类型,此时只能保存和读取日期部分,时间(时分秒)部分不能读取和保存;查询结果集可以直接获取Date类型的数据:java.sql.Date date=resultSet.getDate("dateTime");java.sql.Date类型的数据也可以直接保存到数据库或者与数据库中date类型的数据直接...

weixin_29522501的博客 971

Oracle数据类型

Oracle的数据类型

雷神乐乐的博客 548

oracle数据库的数据类型

一、字符类型 (1)固定长度的字符串 CHAR(字节长度是1~2000之间) CHAR(8)可以存储4个双字节的字符,8个单字节的字符,不足8字节剩余的部分用空格占据 (2)可变长度字符串 VARCHAR2(字节长度是1~4000之间) VARCHAR2(8) 存储的数据大小如上,不足8字节剩余的空间释放 (3)...

diepi7543的博客 110

oracle学习笔记之二:数据类型之DATETIME 收藏

        在1z0-007题库中有一道关于DATETIME数据类型的题目:        Which three are DATETIME data types that can be used when specifying column definitions? (Choose three)        A.  TIMESTAMP        B.  INTERVAL MONTH

无双小宝 636

Oracle Date Function 讲解和事例

1 year=1*12 months1 day=24 hours=24*(1*60mins)=24*60*(1*60 seconds)1 week =7 days 注意: 黑色字体是 oracle 8i,9i都可以使用的函数, 蓝色字体是 Oracle9i新增的部分。 请大家在使用时,注意版本限制。 add_months current_datecurrent_timestam...

编程开发资料库 109

oracle 数据类型详解---日期型

oracle 数据类型详解---日期型(转载) oracle 数据类型详解---日期型         oracle数据类型看起来非常简单,但用起来会发现有许多知识点,本文是我对ORACLE日期数据类型的一些整理,都是开发入门资料,与大家分享: 注:由于INTERVAL及TIME ZONE实际用得比较少,所以本文内容未涉及这两个方面。 1、常用日期型数据类型 1.1、DATE 这

u010973264的专栏 804
上一篇: oracle数据库的时间插入
下一篇: ORACLE DATE和TIMESTAMP数据类型的比较(二) 引自csdn
ghyn
博客等级 码龄22年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值