1. 加减日、月、年
2.加减时、分、秒
3.日期间隔这时、分、秒
4.日期间隔之日、月、年
5.计算一年中周内各日期的次数(好比说计算一年中周一有多少天,周二有多少天等等)
WITH x0 AS
(SELECT trunc(SYSDATE, 'y') AS 年初 FROM dual),
x1 AS
(SELECT 年初, add_months(年初, 12) AS 年底 FROM x0),
x2 AS
(SELECT 年初, 年底, 年底 - 年初 AS 天数 FROM x1),
x3 AS /*生成列表*/
(SELECT 年初 + LEVEL - 1 AS 日期 FROM x2 CONNECT BY LEVEL <= 天数),
x4 AS /*对数据进行转称*/
(SELECT 日期, to_char(日期, 'DY') AS 星期 FROM x3)
/*汇总求天数*/
SELECT 星期, COUNT(*) AS 天数 FROM x4 GROUP BY 星期;
可以用'DDD',来计算天数,语句为 to_char((add_months(trunc(SYSDATE,'y'),12) - 1),'DDD')
6.确定当前记录和下一条记录之间相差的天数
求员工与下一个聘用的员工之间相差的天数。使用lead返回下一个聘用人员的日期。