oracle日期和时间类函数

Oracle 中所有的日期和时间类函数:

  1. SYSDATE:返回当前日期和时间

  2. CURRENT_DATE:返回当前日期

  3. CURRENT_TIMESTAMP:返回当前的日期和时间戳

  4. LOCALTIMESTAMP:返回当前时间戳

  5. TIMESTAMPADD :在日期上增加一定的数量

  6. TIMESTAMPDIFF :计算两个日期之间的时间差

  7. EXTRACT: 从日期时间值中提取子秒、日、周、月、季度、年等部分

  8. DATE_TRUNC: 对日期时间值进行截取,保留到指定的精度

  9. ADD_MONTHS: 在日期中加上几个月

  10. LAST_DAY: 返回指定月份的最后一天

  11. MONTHS_BETWEEN:计算两个日期相差的月份

  12. NEW_TIME:将一个时间从一个时区转移到另一个时区

  13. NEXT_DAY:返回指定日期后的第一个指定星期几

  14. ROUND:按指定精度四舍五入日期或时间

  15. TRUNC : 截断日期或时间,去掉指定精度后的部分

  16. TO_CHAR :将日期或时间转换为指定格式的字符串

  17. TO_DATE: 将字符串转换为 DATE 类型

  18. TO_TIMESTAMP:将字符串转换为 TIMESTAMP 类型

  19. TRUNCATE:截取日期或时间

  20. NUMTOYMINTERVAL 将数字转换为表示日时分秒时间间隔的 INTERVAL DAY TO SECOND 类型

  21. FROM_TZ :将 TIMESTAMP 转换成带有时区信息的 TIMESTAMP WITH TIME ZONE 类型

  22. EXTRACT(XMLTYPE)用于从 XMLTYPE 值中提取日期、时间等信息

     

sql使用示例

1.SYSDATE

函数说明:返回当前系统时间 示例:

SELECT SYSDATE FROM DUAL;
-- 输出:2022-08-30 14:37:06

2.CURRENT_DATE

函数说明:返回当前日期 示例:

SELECT CURRENT_DATE FROM DUAL;
-- 输出:2022-08-30

3.CURRENT_TIMESTAMP

函数说明:返回当前日期和时间戳 示例:

SELECT CURRENT_TIMESTAMP FROM DUAL;
-- 输出:2022-08-30 14:37:06.146453

4.LOCALTIMESTAMP

函数说明:返回当前时间戳 示例:

SELECT LOCALTIMESTAMP FROM DUAL;
-- 输出:2022-08-30 14:37:06.148257

5.TIMESTAMPADD

函数说明:在日期上增加一定的数量 示例:

SELECT TIMESTAMPADD('DAY', 7, '2022-08-30') FROM DUAL;
-- 输出:2022-09-06 00:00:00.000000

6.TIMESTAMPDIFF

函数说明:计算两个日期之间的时间差 示例:

SELECT TIMESTAMPDIFF('SECOND', '2022-08-29 20:10:00', '2022-08-30 14:30:00') FROM DUAL;
-- 输出:72400

7.EXTRACT

函数说明:从日期时间值中提取子秒、日、周、月、季度、年等部分 示例:

SELECT EXTRACT(DAY FROM TIMESTAMP '2022-08-30 20:30:50') FROM DUAL;
-- 输出:30

8.DATE_TRUNC

函数说明:对日期时间值进行截取,保留到指定的精度 示例:

SELECT DATE_TRUNC('MINUTE', TIMESTAMP '2022-08-30 16:20:29') FROM DUAL;
-- 输出:2022-08-30 16:20:00.000000

9.ADD_MONTHS

函数说明:在日期中加上几个月 示例:

SELECT ADD_MONTHS(TO_DATE('2022-08-30', 'YYYY-MM-DD'), 3) FROM DUAL;
-- 输出:2022-11-30

10.LAST_DAY

函数说明:返回指定月份的最后一天 示例:

SELECT LAST_DAY(TO_DATE('2022-08-30', 'YYYY-MM-DD')) FROM DUAL;
-- 输出:2022-08-31

11.MONTHS_BETWEEN

函数说明:计算两个日期相差的月份 示例:

SELECT MONTHS_BETWEEN(TO_DATE('2022-10-01', 'YYYY-MM-DD'), TO_DATE('2022-06-01', 'YYYY-MM-DD')) FROM DUAL;
-- 输出:4

12.NEW_TIME

函数说明:将一个时间从一个时区转移到另一个时区 示例:

SELECT NEW_TIME(TO_DATE('2022-08-30 16:30:00', 'YYYY-MM-DD HH24:MI:SS'), 'EST', 'CST') FROM DUAL;
-- 输出:2022-08-30 15:30:00.000000

13.NEXT_DAY

函数说明:返回指定日期后的第一个指定星期几 示例:

SELECT NEXT_DAY(TO_DATE('2022-08-30', 'YYYY-MM-DD'), 'FRIDAY') FROM DUAL;
-- 输出:2022-09-02

14.ROUND

函数说明:按指定精度四舍五入日期或时间 示例:

SELECT ROUND(TO_DATE('2022-08-30 15:45:30', 'YYYY-MM-DD HH24:MI:SS'), 'HOUR') FROM DUAL;
-- 输出:2022-08-30 16:00:00.000000

15.TRUNC

函数说明:截断日期或时间,去掉指定精度后的部分 示例:

SELECT TRUNC(TO_DATE('2022-08-30 15:45:30', 'YYYY-MM-DD HH24:MI:SS'), 'HOUR') FROM DUAL;
-- 输出:2022-08-30 15:00:00.000000

16. TO_CHAR

函数说明:将日期或时间转换为指定格式的字符串 示例:

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM DUAL;
-- 输出:2022-08-30

17.TO_DATE

函数说明:将字符串转换为 DATE 类型 示例:

SELECT TO_DATE('2022-08-30', 'YYYY-MM-DD') FROM DUAL;
-- 输出:2022-08-30

18.TO_TIMESTAMP

函数说明:将字符串转换为 TIMESTAMP 类型 示例:

SELECT TO_TIMESTAMP('2022-08-30 16:30:00', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
-- 输出:2022-08-30 16:30:00.000000

19.TRUNCATE

函数说明:截取日期或时间 示例:

SELECT TRUNCATE(TO_DATE('2022-08-30 16:30:15', 'YYYY-MM-DD HH24:MI:SS'), 'HH') FROM DUAL;
-- 输出:2022-08-30 16:00:00.000000

20.NUMTODSINTERVAL

函数说明:将数字转换为表示日时分秒时间间隔的 INTERVAL DAY TO SECOND 类型 示例:

SELECT NUMTODSINTERVAL(180, 'SECOND') FROM DUAL;
-- 输出:+00 00:03:00.000000

21.FROM_TZ

函数说明:将 TIMESTAMP 转换成带有时区信息的 TIMESTAMP WITH TIME ZONE 类型 示例:

SELECT FROM_TZ(TIMESTAMP '2022-08-30 14:56:20', 'America/New_York') FROM DUAL;
-- 输出:30-AUG-2022 02.56.20.000000000 PM AMERICA/NEW_YORK

22.EXTRACT(XMLTYPE)

函数说明:用于从 XMLTYPE 值中提取日期、时间等信息 示例:

SELECT EXTRACT(XMLTYPE('<book><title>Open Database Connectivity - ODBC</title><pubDate>2000-12-01T00:00:00Z</pubDate></book>'), '/book/pubDate/text()') FROM DUAL;
-- 输出:2000-12-01T00:00:00Z
 
posted @ 2023-04-20 23:34  我不知道取什么名字好  阅读(454)  评论(0)    收藏  举报