spark sql 求季度日期

文章介绍了如何使用SQL函数如LAST_DAY和ADD_MONTHS配合TRUNC和QUARTER来计算给定日期所属季度的起始和结束日期,如2023-12-01分别对应2023-09-30和2023-04-01等.
摘要由CSDN通过智能技术生成

LAST_DAY(ADD_MONTHS(TRUNC(dt,'YEAR'),QUARTER(dt) * 3 - 4))  输入:2023-12-01  结果:2023-09-30  上季度最后一天
ADD_MONTHS(TRUNC(dt,'YEAR'),QUARTER(dt) * 3 - 6)            输入:2023-12-01  结果:2023-07-01  上季度第一天
ADD_MONTHS(TRUNC(dt,'YEAR'),QUARTER(dt) * 3 - 9)            输入:2023-12-01  结果:2023-04-01  上上季度第一天
LAST_DAY(ADD_MONTHS(TRUNC(dt,'YEAR'),QUARTER(dt) * 3 - 7))  输入:2023-12-01  结果:2023-06-30  上上季度最后一天  


TRUNC(dt,'YEAR'): 这将 dt(一个日期)截断为该年份的第一天。例如,如果 dt 是 '2023-09-25',则结果将是 '2023-01-01'。
QUARTER(dt): 这将返回 dt 所在的季度(1 到 4)。例如,如果 dt 是 '2023-09-25',则结果将是 3。
QUARTER(dt) * 3: 这将返回 dt 所在季度乘以3的结果。继续上面的例子,这将返回 9。
QUARTER(dt) * 3 - 6: 这将返回上述结果减去6的结果。继续上面的例子,这将返回 3。
ADD_MONTHS(...,3): 这将给上述结果添加3个月。继续上面的例子,由于结果已经是 '2023-01-01',添加3个月后,结果将是 '2023-04-01'。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

{BOOLEAN}

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值