我有一个源表 click
列名为 click_date
其数据类型为 varchar
,它在同一列中包含具有两种不同日期格式的值。例如:
Jul 17 2018 4:54PM
2019-02-05 08:20:29.000
我有一个名为 click
我需要把数据Map到一个名为 click_date
其数据类型为 bigint
.
所以它在进行铸造时抛出了一个错误
尝试了以下操作:
td_time_parse(cast(cast(click_date as timestamp)as varchar))
但它不能同时解决这两种格式。。我需要将这两种日期格式都转换为整数,以便可以将其加载到目标中。
请注意,不能更改目标数据类型,它是bigint。ф任何线索将不胜感激。
2条答案
按热度按时间vhipe2zx1#
您可以使用下面的查询用一个表达式处理两种日期格式。它本质上看日期/时间戳是否以数字开头。
7bsow1i62#
你可以用
date_parse
以及to_unixtime
将varchar中的日期转换为unixtimestamp(采用double数据类型)。日期格式:2019-02-05 08:20:29.000
日期格式:2018年7月17日
这将返回日期的双数据类型,您可以将其存储在数据库中。