我想为我的配置单元查询设置动态日期参数。我想要今天之前已经过去的半个月。我怎么能做到这一点?我不确定我是否能在SET hivevar:
中做case when
。
if current_date = '2022-10-04', then I want to set start_dt = '2020-09-16' and end_dt = '2020-09-30'
if current_date = '2022-03-04', then I want to set start_dt = '2020-02-16' and end_dt = '2020-02-28'
if current_date = '2022-10-16', then I want to set start_dt = '2020-10-01' and end_dt = '2020-10-15'
1条答案
按热度按时间5m1hhzi41#
您不需要设置动态参数。如果你可以很容易地实现它,那就使用它。
对于每种情况,您可以使用Year()、Month()、Add_Month()函数计算它们。To_Date可用于转换为日期。请在下面测试一下SQL并让我知道。
开始日期的逻辑是-如果币种日期<16,则使用上个月的16日,否则使用币种月份的第一天。同样地,也计算结束DT。
请测试一下SQLS。如果您遇到问题,请将
year
、month
输出与cast(... as string)
一起附上。