Oracle 中所有的日期和时间类函数:
-
SYSDATE:返回当前日期和时间
-
CURRENT_DATE:返回当前日期
-
CURRENT_TIMESTAMP:返回当前的日期和时间戳
-
LOCALTIMESTAMP:返回当前时间戳
-
TIMESTAMPADD :在日期上增加一定的数量
-
TIMESTAMPDIFF :计算两个日期之间的时间差
-
EXTRACT: 从日期时间值中提取子秒、日、周、月、季度、年等部分
-
DATE_TRUNC: 对日期时间值进行截取,保留到指定的精度
-
ADD_MONTHS: 在日期中加上几个月
-
LAST_DAY: 返回指定月份的最后一天
-
MONTHS_BETWEEN:计算两个日期相差的月份
-
NEW_TIME:将一个时间从一个时区转移到另一个时区
-
NEXT_DAY:返回指定日期后的第一个指定星期几
-
ROUND:按指定精度四舍五入日期或时间
-
TRUNC : 截断日期或时间,去掉指定精度后的部分
-
TO_CHAR :将日期或时间转换为指定格式的字符串
-
TO_DATE: 将字符串转换为 DATE 类型
-
TO_TIMESTAMP:将字符串转换为 TIMESTAMP 类型
-
TRUNCATE:截取日期或时间
-
NUMTOYMINTERVAL 将数字转换为表示日时分秒时间间隔的 INTERVAL DAY TO SECOND 类型
-
FROM_TZ :将 TIMESTAMP 转换成带有时区信息的 TIMESTAMP WITH TIME ZONE 类型
-
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标签:函数,示例,--,08,30,日期,2022,oracle,DUAL From: https://www.cnblogs.com/zouzhibin/p/17338807.html