Hive 使用配置单元函数验证日期值
我有一个字符串列,其值为日期。有些有效(Hive 使用配置单元函数验证日期值,hive,Hive,我有一个字符串列,其值为日期。有些有效(yyyy-MM-dd),有些无效。如何仅使用配置单元筛选有效和无效?我不能使用自定义UDF或Spark,因此它只能使用配置单元函数 select * from date_test; +-------------------+--+ | date_test.mydate | +-------------------+--+ | 2018-12-13 | => valid | 2018-13-12 | => inval
yyyy-MM-dd
),有些无效。如何仅使用配置单元筛选有效和无效?我不能使用自定义UDF或Spark,因此它只能使用配置单元函数
select * from date_test;
+-------------------+--+
| date_test.mydate |
+-------------------+--+
| 2018-12-13 | => valid
| 2018-13-12 | => invalid
| 2018-04-31 | => invalid
+-------------------+--+
select mydate,to_date(mydate) from date_test;
+-------------+-------------+--+
| mydate | _c1 |
+-------------+-------------+--+
| 2018-12-13 | 2018-12-13 |
| 2018-13-12 | 2019-01-12 | => to_date() casts it to valid value
| 2018-04-31 | 2018-05-01 | => to_date() casts it to valid value
+-------------+-------------+--+
我已经设法做到了,但我愿意接受其他更好的方法
//valid date values
select
mydate,
to_date(mydate)
from
date_test
where
mydate = to_date(mydate);
+-------------+-------------+--+
| mydate | _c1 |
+-------------+-------------+--+
| 2018-12-13 | 2018-12-13 |
+-------------+-------------+--+
//invalid date values
select
mydate,
to_date(mydate)
from
date_test
where
mydate <> to_date(mydate);
+-------------+-------------+--+
| mydate | _c1 |
+-------------+-------------+--+
| 2018-13-12 | 2019-01-12 |
| 2018-04-31 | 2018-05-01 |
+-------------+-------------+--+
//有效的日期值
挑选
mydate,
截止日期(mydate)
从…起
日期检验
哪里
mydate=截止日期(mydate);
+-------------+-------------+--+
|mydate | uC1|
+-------------+-------------+--+
| 2018-12-13 | 2018-12-13 |
+-------------+-------------+--+
//无效的日期值
挑选
mydate,
截止日期(mydate)
从…起
日期检验
哪里
mydate至_日期(mydate);
+-------------+-------------+--+
|mydate | uC1|
+-------------+-------------+--+
| 2018-13-12 | 2019-01-12 |
| 2018-04-31 | 2018-05-01 |
+-------------+-------------+--+