sql server—spark sql中的上季度结束日期

bis0qfac  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(769)

我有一个计算最后一个季度结束日期的sql server查询。现在,我需要将这个查询转换为 Spark-SQL 查询。
这个 Sql-Server 查询和一些示例如下:

select dateadd(dd, -1, dateadd(qq, datediff(qq, 0, cast('2020-09-09' AS DATE)), 0)) as end_dt

输出: 2020-06-30 为另一个计算相同的值( 2021-01-10 )日期:

select dateadd(dd, -1, dateadd(qq, datediff(qq, 0, cast('2021-01-10' AS DATE)), 0)) as end_dt

输出: 2020-12-31 问题:如何在sparksql查询(v2.4)中实现相同的功能?我如何计算上一季度的最后一天 SQL-Server 上面的例子和下面需要的输出?

input_date | end_date
------------------------
2020-01-21 | 2019-12-31
2020-02-06 | 2019-12-31
2020-04-15 | 2020-03-31
2020-07-10 | 2020-06-30
2020-10-20 | 2020-09-30
2021-02-04 | 2020-12-31

感谢您的帮助。谢谢。

1sbrub3j

1sbrub3j1#

你可以用 date_trunc() :

select date_add(
    date_trunc(cast('2020-09-09' as date), 'quarter'), 
    -1
) as end_dt

相关问题