配置单元日期转换不起作用

whhtz7ly  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(415)

我试着比较两个不同格式的日期。所以,我把它们都转换成unixtimespamp来比较,但是因为它们有不同的日期格式。这不是正确的转换方式。我需要帮助。我的问题是:

select a.date,b.date
from table1 a join table2 b
on (from_unixtime( unix_timestamp(b.date, 'MM/dd/yyyy HH:mm:ss a')))=(from_unixtime(unix_timestamp(nvl(a.date,'3050-01-01 00:00:00.0'))));

日期格式为:

a.date                  b.date
4/12/2016 5:46:50 PM    2016-04-12 17:46:50.0
4/12/2016 5:46:50 PM    2016-04-12 17:46:50.0

非常感谢,斯塔基

gev0vcfq

gev0vcfq1#

我看到你正在把日期转换成长整型。这更准确。所以为什么不比较一下,看看他们是平等的呢。以下是查询:

select a.date,b.date from table1 a join table2 b on (unix_timestamp(b.date, 'MM/dd/yyyy HH:mm:ss a'))=(unix_timestamp(coalesce(a.date,'3050-01-01 00:00:00.0')));
8dtrkrch

8dtrkrch2#

看来你的约会方式倒了。 a.date 是您需要为其指定格式的。 b.date 应该很好地转换成一个时间戳,而无需任何准备。以下测试在我的机器上进行得很好:

select a.date,b.date
from table1 a join table2 b
on unix_timestamp(b.date) = unix_timestamp(a.date,'M/d/yyyy h:mm:ss a');

相关问题