Oracle 技能强化 Part 7 日期运算

本文介绍如何使用SQL进行日期操作,包括加减日、月、年,计算日期间隔,以及统计一年中每周各天的数量。通过具体示例展示了如何生成日期列表、转换日期格式和计算特定日期之间的天数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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返回下一个聘用人员的日期。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值