Oracle日期和时间的基本命令详解

 更新时间:2024年06月24日 11:05:39   作者:码农研究僧  
这篇文章主要介绍了Oracle日期和时间的基本命令详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

1. 基本类型

Oracle支持不同的日期格式模型,其中包括:

  • ISO 8601: YYYY-MM-DDTHH:MI:SS,例如2024-06-20T14:30:00
  • Oracle内部格式: DD-MON-YYYY HH:MI:SS AM,例如20-JUN-2024 02:30:00 PM

DATE: 存储日期和时间,精确到秒

CREATE TABLE test_date (col DATE);
INSERT INTO test_date (col) VALUES (TO_DATE('2024-06-20 12:34:56', 'YYYY-MM-DD HH24:MI:SS'));

TIMESTAMP:比DATE类型更精确,可以精确到小数秒

CREATE TABLE test_timestamp (col TIMESTAMP);
INSERT INTO test_timestamp (col) VALUES (TO_TIMESTAMP('2024-06-20 12:34:56.789', 'YYYY-MM-DD HH24:MI:SS.FF3'));

INTERVAL YEAR TO MONTH:存储年份和月份的时间间隔

CREATE TABLE test_interval_ym (col INTERVAL YEAR TO MONTH);
INSERT INTO test_interval_ym (col) VALUES (INTERVAL '2-3' YEAR TO MONTH);

INTERVAL DAY TO SECOND:存储天、小时、分钟、秒以及小数秒的时间间隔

CREATE TABLE test_interval_ds (col INTERVAL DAY TO SECOND);
INSERT INTO test_interval_ds (col) VALUES (INTERVAL '5 12:34:56.789' DAY TO SECOND);

2. 常用函数

SYSDATE:返回当前系统日期和时间。SELECT SYSDATE FROM dual;

CURRENT_TIMESTAMP:返回当前系统时间戳:SELECT CURRENT_TIMESTAMP FROM dual;

EXTRACT: 从日期或时间戳中提取特定的部分(如年、月、日、小时等)

SELECT EXTRACT(YEAR FROM SYSDATE) AS year FROM dual; # 2024
SELECT EXTRACT(MONTH FROM SYSDATE) AS month FROM dual; # 6
SELECT EXTRACT(DAY FROM SYSDATE) AS day FROM dual; # 20

TO_DATE: 将字符串转换为DATE类型:SELECT TO_DATE('2024-06-20', 'YYYY-MM-DD') FROM dual;

TO_TIMESTAMP: 将字符串转换为TIMESTAMP类型:SELECT TO_TIMESTAMP('2024-06-20 12:34:56.789', 'YYYY-MM-DD HH24:MI:SS.FF3') FROM dual;

TO_CHAR: 将日期或时间戳转换为字符串,可以指定格式:SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM dual;

ADD_MONTHS: 给日期加上指定的月份数:SELECT ADD_MONTHS(SYSDATE, 6) AS new_date FROM dual;

MONTHS_BETWEEN: 计算两个日期之间的月份数:SELECT MONTHS_BETWEEN(TO_DATE('2024-12-20', 'YYYY-MM-DD'), SYSDATE) AS months_between FROM dual;

NEXT_DAY: 返回指定日期之后的第一个指定星期几:SELECT NEXT_DAY(SYSDATE, 'FRIDAY') AS next_friday FROM dual;

LAST_DAY: 返回指定月份的最后一天:SELECT LAST_DAY(SYSDATE) AS last_day_of_month FROM dual;

3. Demo

示例的查询有如下:

当前系统日期和时间

SELECT SYSDATE, CURRENT_TIMESTAMP FROM dual;

将字符串转换为日期并进行加减操作

SELECT TO_DATE('2024-06-20', 'YYYY-MM-DD') + 10 AS new_date FROM dual;

提取日期的不同部分

SELECT EXTRACT(YEAR FROM SYSDATE) AS year,
       EXTRACT(MONTH FROM SYSDATE) AS month,
       EXTRACT(DAY FROM SYSDATE) AS day
FROM dual;

到此这篇关于Oracle日期和时间的基本命令的文章就介绍到这了,更多相关Oracle日期和时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • oracle中行转列LISTAGG()函数详解及应用实例

    oracle中行转列LISTAGG()函数详解及应用实例

    这篇文章主要给大家介绍了关于oracle中行转列LISTAGG()函数详解及应用实例的相关资料,stagg是oracle11.2增加的特性,功能类似wmsys.wm_concat函数,即将数据分组后,把指定列的数据通过指定符号合并,需要的朋友可以参考下
    2024-05-05
  • ORACLE时间函数(SYSDATE)深入理解

    ORACLE时间函数(SYSDATE)深入理解

    有些朋友对ORACLE时间函数理解不是很透彻,接下来讲详细介绍,希望可以帮助到你们
    2012-12-12
  • oracle中的greatest 函数和 least函数示例代码

    oracle中的greatest 函数和 least函数示例代码

    这篇文章主要介绍了oracle中的greatest 函数和 least函数的实例代码,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2018-11-11
  • 设置oralce自动内存管理执行步骤

    设置oralce自动内存管理执行步骤

    设置内存管理首先要启用oracle自动内存管理需要shutdown ,restart,接下来为大家介绍下详细的执行步骤,感兴趣的朋友可以参考下哈
    2013-04-04
  • oracle11g客户端连接12c服务器ORA-01017错误问题解决

    oracle11g客户端连接12c服务器ORA-01017错误问题解决

    这篇文章主要介绍了oracle11g客户端连接12c服务器ORA-01017错误,本文给大家分享完美解决方法,对oracle 12c错误ORA-01017问题解决方法感兴趣的朋友跟随小编一起看看吧
    2023-06-06
  • Oracle普通视图和物化视图的区别及说明

    Oracle普通视图和物化视图的区别及说明

    这篇文章主要介绍了Oracle普通视图和物化视图的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • Oracle 10g client 安装图解教程

    Oracle 10g client 安装图解教程

    这篇文章主要介绍了Oracle 10g client 安装图解教程,需要的朋友可以参考下
    2017-03-03
  • Oracle查询当前的crs/has自启动状态实例教程

    Oracle查询当前的crs/has自启动状态实例教程

    当我们开启或者关闭自启动后,我们如何查看当前CRS 是处于enable还是处于disable中呢?下面这篇文章主要给大家介绍了关于Oracle如何查询当前的crs/has自启动状态的相关资料,需要的朋友可以参考下
    2018-11-11
  • oracle使用PLSQL工具自行修改用户密码方式

    oracle使用PLSQL工具自行修改用户密码方式

    文章介绍了如何使用PLSQL工具自行修改Oracle数据库用户的密码,包括登录、找到更改密码选项、输入新密码并确认的过程,最后通过重新登录验证新密码的有效性
    2025-11-11
  • oracle 11g 数据库常用操作实例总结

    oracle 11g 数据库常用操作实例总结

    这篇文章主要介绍了oracle 11g 数据库常用操作,结合实例形式总结分析了oracle 11g数据库进入、创建、权限、用户等相关操作技巧与注意事项,需要的朋友可以参考下
    2023-05-05

最新评论