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