SYSDATE:返回当前系统日期和时间。最简单直接的获取当前时间的方式。SELECT SYSDATE FROM DUAL; 当前日期就是SYSDATE返回的值。
日期加减法
日期 +/- 数字:数字代表天数。SELECT SYSDATE + 7 FROM DUAL; 今天加7天。SELECT SYSDATE - 30 FROM DUAL; 30天前。
月份加减
日期 + 数字/24/31:近似一个月。精确月份用 ADD_MONTHS。SELECT ADD_MONTHS(SYSDATE, 3) FROM DUAL; 三个月后。
日期截断
TRUNC(日期, '格式'):截取到指定单位。TRUNC(SYSDATE) 或 TRUNC(SYSDATE, 'DD'):当月第一天。TRUNC(SYSDATE, 'MM'):当月第一天。TRUNC(SYSDATE, 'YYYY'):当年第一天。
日期格式化
TO_CHAR(日期, '格式'):转字符串。SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL; 2023-10-01 14:30:25。TO_DATE(字符串, '格式'):转日期。SELECT TO_DATE('2023-10-01', 'YYYY-MM-DD') FROM DUAL;
提取日期部分
EXTRACT(YEAR FROM 日期):提取年。EXTRACT(MONTH FROM 日期):月。SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL; 2023。
日期差
日期1 - 日期2:返回天数差。SELECT SYSDATE - TO_DATE('2023-01-01', 'YYYY-MM-DD') FROM DUAL; 今天减2023-1-1的天数。
FAQ
Q: 如何获取当前日期?
A: 用 SYSDATE。
Q: 怎么加一个月?
A: ADD_MONTHS(SYSDATE, 1)。
Q: 日期转字符串?
A: TO_CHAR(日期, 'YYYY-MM-DD')。
Q: 计算两个日期差几天?
A: 日期1 - 日期2。