比较不同数据类型的日期

fiei3ece  于 2021-06-25  发布在  Hive
关注(0)|答案(2)|浏览(326)

我尝试连接两个表以进行一些数据验证,并尝试在两个不同类型的日期字段上连接它们。我目前正在使用配置单元,我正在创建两个表,然后将每个文件导入到它自己的表中,因为它来自两个不同的源。我将两个字段类型都指定为字符串。但是,当我从每个表中选择*时,这就是我得到的

t1.asgn_dt = 20-MAY-19
t2.trans_dt = 20190520

我试着把它们都转换成字符串,转换成日期等等。转换的最佳方式是什么?我将更改哪个字段,从哪个表中比较这两个字段,以显示它们是相等的。

nlejzf6q

nlejzf6q1#

你可以用 from_unixtime(unix_timestamp(<col>, <format>)) ,所以:
为了 '20-MAY-19' :

from_unixtime(unix_timestamp('20-MAY-19' , 'dd-MMM-yy'))

为了 '20190520' :

from_unixtime(unix_timestamp('20190520' , 'yyyy-MM-dd'))
9lowa7mx

9lowa7mx2#

使用 From_unixtime and unix_timestamp 函数将数据转换为一种一致的格式,然后在联接条件中使用这些表达式。
例子: 1. For dd-MMM-yyformat:select from_unixtime(unix_timestamp("20-MAY-19","dd-MMM-yy"),"yyyy-MM-dd");Result:2019-05-202. For yyyyMMdd format:select from_unixtime(unix_timestamp("20190520","yyyyMMdd"),"yyyy-MM-dd");Result: ```
2019-05-20

相关问题