1. `SYSDATE`: 返回当前系统日期和时间。

2. `SYSTIMESTAMP`: 返回当前系统日期和时间,包括时区信息。

3. `CURRENT_DATE`: 返回当前系统日期。

4. `CURRENT_TIMESTAMP`: 返回当前系统日期和时间,包括时区信息。

5. `EXTRACT`: 从日期/时间值中提取指定部分。例如,`EXTRACT` 返回当前年份。

6. `ADD_MONTHS`: 向日期添加指定的月数。例如,`ADD_MONTHS` 返回当前日期加3个月。

7. `ADD_DAYS`: 向日期添加指定的天数。例如,`ADD_DAYS` 返回当前日期加10天。

8. `LAST_DAY`: 返回给定日期所在月份的最后一天。例如,`LAST_DAY` 返回当前月份的最后一天。

9. `NEXT_DAY`: 返回给定日期后的下一个指定星期几的日期。例如,`NEXT_DAY` 返回当前日期后的下一个星期一。

10. `MONTHS_BETWEEN`: 返回两个日期之间的月数。例如,`MONTHS_BETWEEN, SYSDATEqwe2` 返回当前日期与2023年1月1日之间的月数。

11. `DAYS_BETWEEN`: 返回两个日期之间的天数。例如,`DAYS_BETWEEN, SYSDATEqwe2` 返回当前日期与2023年1月1日之间的天数。

12. `TO_CHAR`: 将日期/时间值转换为字符串。例如,`TO_CHAR` 将当前日期转换为'YYYYMMDD'格式的字符串。

13. `TO_DATE`: 将字符串转换为日期。例如,`TO_DATE` 将'20230101'转换为日期。

14. `TO_TIMESTAMP`: 将字符串转换为时间戳。例如,`TO_TIMESTAMP` 将'20230101 10:00:00'转换为时间戳。

15. `ROUND`: 四舍五入日期/时间值到指定单位。例如,`ROUND` 将当前日期四舍五入到最近的月份。

16. `TRUNC`: 截断日期/时间值到指定单位。例如,`TRUNC` 将当前日期截断到最近的日期。

17. `CURRENT_TIME`: 返回当前系统时间,不包括日期。

18. `CURRENT_TIMESTAMP WITH TIME ZONE`: 返回当前系统日期和时间,包括时区信息。

19. `CURRENT_TIMESTAMP WITH LOCAL TIME ZONE`: 返回当前系统日期和时间,根据会话的时区设置。

20. `DBTIMEZONE`: 返回数据库服务器的时区。

21. `SESSIONTIMEZONE`: 返回当前会话的时区。

这些函数可以用于各种日期和时间相关的操作,如计算日期差、格式化日期、添加或减去时间等。请注意,具体的函数使用可能因Oracle数据库的版本而异。

Oracle 时间函数概述

Oracle 数据库提供了丰富的日期和时间函数,这些函数可以帮助用户处理和操作日期和时间数据。无论是日期的加减、时间的格式化,还是日期的提取和转换,Oracle 的日期时间函数都能满足各种需求。

常用日期时间函数

SYSDATE

功能:SYSDATE 函数返回数据库服务器当前的日期和时间。

语法:SYSDATE

示例:

SELECT SYSDATE AS currentdate FROM dual;

-- 结果:2024-12-11 14:30:45

EXTRACT

功能:EXTRACT 函数可以从日期或时间值中提取出年、月、日、时、分、秒等部分信息。

语法:EXTRACT(field FROM date)

示例:

SELECT

EXTRACT(YEAR FROM SYSDATE) AS currentyear,

EXTRACT(MONTH FROM SYSDATE) AS currentmonth,

EXTRACT(DAY FROM SYSDATE) AS currentday

FROM dual;

-- 结果:2024 12 11

TO_DATE

功能:TO_DATE 函数将字符串格式的日期转换为 Oracle 的日期类型。

示例:

SELECT TODATE('2024-12-11', 'YYYY-MM-DD') AS converteddate FROM dual;

-- 结果:2024-12-11

ADD_MONTHS

功能:ADD_MONTHS 函数返回指定日期加上或减去指定月数的日期。

语法:ADD_MONTHS(date, number)

示例:

DECLARE

vdate DATE;

BEGIN

vdate := ADD_MONTHS(SYSDATE, -14);

dbms_output.put_line('当前日期前14个月对应的日期:' || vdate);

END;

-- 结果:当前日期前14个月对应的日期:27-10月-02

CURRENT_DATE

功能:CURRENT_DATE 函数返回当前会话时区对应的日期时间。

语法:CURRENT_DATE

示例:

ALTER SESSION SET TIMEZONE '-5:0';

ALTER SESSION SET NLS_DATE_FORMAT 'YYYY-MM-DD HH24:MI';

SELECT CURRENT_DATE FROM dual;

-- 结果:2024-12-11 14:30:45

时间函数的运用场景

记录创建时间

在创建记录时,可以使用 SYSDATE 函数来记录数据的创建时间。

分析时间间隔

通过使用 datediff 和 timestampdiff 函数,可以计算两个日期之间的时间差。

格式化输出

使用 TO_CHAR 函数可以将日期和时间格式化为不同的显示格式。

日期的加减

在日期的加减操作中,可以使用 date 类型直接进行天数的加减,而加减月份则需要使用 addmonths 函数。

Oracle 数据库的日期时间函数为用户提供了强大的数据处理能力。通过熟练掌握这些函数,用户可以轻松地处理和操作日期和时间数据,从而提高数据库应用的开发效率。