如何将此String转换为Timestamp

时间:2017-11-16 18:34:02

标签: sql hadoop impala

我有一个数据列,如“08.06.2017 / 10:20:46”。数据类型是字符串。我想将其转换为时间戳。 我试过CAST(“08.06.2017 / 10:20:46”AS TIMESTAMP),但它不起作用 你能帮我转换一下吗? 感谢

3 个答案:

答案 0 :(得分:1)

对于mysql,有一个名为STR_TO_DATE

的函数

您应该这样称呼它:

$text = "IP: $this->ip:$this->port".'\n'.
    "IP interna: $this->ip_interna".'\n'.
    "User: $this->user".'\n'.
    "Pass: $this->pass".'\n'.
    "Observació: $this->observacio".'\n\n'.
    $this->credenciable->__toString();
return $text;

看一看 Format specifiers

在你的情况下,我会尝试

STR_TO_DATE(string , format)

编辑:对不起mysql的东西,不知道我是否应该删除它...不管怎样,对于黑斑羚来说,这可以让你开始:

STR_TO_DATE('08.06.2017/10:20:46','%d.%m.%Y/%H:%i:%s') 

转换是因为unix_timestamp函数返回一个bigint(看看 here 以获取有关impala日期时间函数的更多信息)

答案 1 :(得分:0)

对于Oracle SQL,

使用to_date函数,如下所示,

SELECT TO_DATE('08.06.2017/10:20:46','dd.mm.yyyy/hh:mi:ss') FROM DUAL;

这表示字符串是以这个(dd.mm.yyyy / hh:mi:ss)形式的日期并转换为日期列...

答案 2 :(得分:0)

Hive和Impala以类似的方式处理日期。您需要使用函数unix_timestamp来接受非标准日期格式,然后使用from_unixtime函数转换为时间戳。下面的代码应该适用于您的示例。

SELECT from_unixtime(unix_timestamp('08.06.2017/10:20:46','dd.MM.yyyy/hh:mm:ss'));