gpt4 book ai didi

date - 验证日期在配置单元中是否有效?

转载 作者:可可西里 更新时间:2023-11-01 15:26:11 37 4
gpt4 key购买 nike

我有日期列,格式为 yyyyMMdd。我想检查日期是否有效。在 informatica 中,该函数可用作 CASE WHEN IS_DATE(TO_CHAR(DT),'YYYYMMDD') = 0 THEN TO_DATE('99991231','YYYYMMDD') ELSE TO_DATE(TO_CHAR(DT),'YYYYMMDD') END作为 EFF_DT

因为在 hive 中替代 'is_date' 函数不可用,如何在 hive 中实现相同的功能。

最佳答案

使用正则表达式:

case when regexp_extract(date_column,'(19|20)[0-9]{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])',0) = '' 
then 'not valid date'
else 'valid date'
end

根据您的日期要求编辑正则表达式。

您可以使用宏:

create temporary macro isDate(s string)
case when regexp_extract(s,'(19|20)[0-9]{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])',0) = ''
then false
else true
end;

然后在你的 SQL 中使用它:

select * from table where isDate(date_col); 

对于 yyyy-MM-dd 格式,您可以使用 cast(date_col as date):

create temporary macro isDate(s string)
case cast(s as date) is not null then true else false end

关于date - 验证日期在配置单元中是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46935866/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com