Oracle入门学习系列笔记(四)之日期操作

7 篇文章 0 订阅
6 篇文章 0 订阅

Oracle入门学习系列笔记(四)之日期操作

ORACLE中的DATE和TIMESTAMP


说明: 本文档为本人学习Oracle过程中整理的相关笔记,供大家学习时参考,如有不妥之处,请大家指正

介绍

Oracle中表示字符串常用的两种类型为DATE和TIMESTAMP,本文介绍的是这两种类型的相关特性及相关函数操作

ORACLE中的日期操作
DATE
SYSDATE
TIMESTAMP
SYSTIMESTAMP
常用函数
TO_DATE
TO_CHAR
LAST_DAY
ADD_MONTHS

DATE类型

  • ORACLE中最常用的日期类型,用来保存日期和时间
  • DATE表示的日期范围可以是公元前4712年1月1日至公元9999年12月31日
  • DATE类型在数据库中的存储固定为7个字节,格式为:
    • 第1个字节:世纪+100
    • 第2个字节:年
    • 第3个字节:月
    • 第4个字节:天
    • 第5个字节:小时+1
    • 第6个字节:分+1
    • 第7个字节:秒+1

SYSDATE函数

  • 其本质是一个ORACLE的内部函数,返回当前的系统时间,精确到秒
  • 默认的显示格式是DD-MON-RR
  • 例如:

select sysdate from dual;

在这里插入图片描述

TIMESTAMP类型

  • ORACLE中常用的日期类型
  • 与DATE的区别是不仅可以保存日期和时间,还能保存小数秒,最高精度可以到ns(纳秒)
  • 数据库内部用7或者11个字节存储,精度为0,用7个字节存储,与DATE功能相同,精度大于0则用11字节存储
  • 格式为:
    • 第1字节–第7字节:和DATE相同
    • 第8-11字节:纳秒, 采用4字节存储,内部运算类型为整型

SYSTIMESTAMP函数

  • 内部函数,返回当前系统日期和时间,精确到毫秒

  • 例如:


select systimestamp from dual;

在这里插入图片描述

TO_DATE函数

  • TO_DATE(char[,fmt[,nlsparams]]):将字符串按照定制格式转换为日期类型

    • char:要转换的字符串
    • fmt:格式
    • nlsparams:指定日期语言
  • 常用的日期格式见下表:

YY2位数字的年份
YYYY4位数字的年份
MM2位数字的月份
MON简拼的月份
MONTH全拼的月份
DD2位数字的天
DY周几的缩写
DAY周几的全拼
HH2424小时制的小时
HH12小时制的小时
MI分钟
SS
  • 例如:

SELECT TO_DATE('2019-01-01 13:01:31','YYYY-MM-DD HH24:MI:SS') AS DTE FROM DUAL;

在这里插入图片描述

TO_CHAR 函数

  • 将其他类型的数据转换为字符类型

  • TO_CHAR(date[,fmt[,nlsparams]]):将日期类型数据date按照fmt的格式输出字符串,nlsparams用于指定日期语言

  • 例如:


SELECT TO_CHAR(BIR_DATE,'YYYY-MM-DD') AS BIRDATE FROM DAVID.STU_INF;
SELECT TO_CHAR(BIR_DATE,'YYYY"年"MM"月"DD"日" HH24:MI:SS') AS BIRDATE FROM DAVID.STU_INF;


在这里插入图片描述

LAST_DAY函数

  • LAST_DAY(date):返回日期date所在月的最后一天

  • 在按照自然月计算某些业务逻辑,或者安排月末周期性活动时很有用处

  • 例如:


SELECT LAST_DAY(SYSDATE) LASTD FROM DUAL;
SELECT LAST_DAY('30-1月-18') LST FROM DUAL;

在这里插入图片描述

ADD_MONTHS函数

  • ADD_MONTHS(date,i) : 返回日期date加上i个月后的日期值

    • 参数i可以是任何数字,大部分时候取正整数
    • 如果i是小数,则将会被截取整数后在参与运算
    • 如果i是负数,则获得的是减去i个月后的日期值
  • 例如:


SELECT ADD_MONTHS(BIR_DATE,8) AS ADDM FROM DAVID.STU_INF;
SELECT ADD_MONTHS(SYSDATE,10) AS ADDM FROM DAVID.STU_INF;

在这里插入图片描述


如果你觉得本笔记对你有帮助,请扫码给予支持,金额随意

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jack_David

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值