有三个int变量start_year, start_month, start_day,分别是2024,3和4,如何合并变成日期变量(date)?

直接用date函数会报错

date(start_year, start_month, start_day)

Syntax Error: [line #1] The function [date] expects 0~1 argument(s), but the actual number of arguments is: 3


如下也不行:

date(concat([start_year, start_month, start_day],'.'))

date(concat([start_year, start_month, start_day], '.')) => Failed to convert the string to DATE

因为月份和日期需要是两位的字符


后来想出来的解决方法是这样的,但是好繁琐!

def pad_with_zero(num){
    res = string(num)
    if(strlen(res) == 1) res = concat('0',res)
    return(res)
}
date(concat([start_year, pad_with_zero(start_month), pad_with_zero(start_day)],'.'))

或许有简单的方法可以直接一个函数就能实现吗?





请先 登录 后评论

最佳答案 2024-03-04 15:31

需要填充 0 以满足 DDB 的日期格式:

start_year="2024" 
start_month="3" 
start_day="4"
concat([start_year, lpad(start_month, 2, "0"), lpad(start_day, 2, "0")], ".").date()
x=start_year+lpad(start_month, 2, "0")+lpad(start_day, 2, "0")
temporalParse(x, "yyyyMMdd")




请先 登录 后评论

其它 0 个回答

  • 1 关注
  • 0 收藏,185 浏览
  • arroe 提出于 2024-03-04 14:58

相似问题