Athena (Presto) 字符串到日期的转换

use*_*011 1 presto amazon-athena

我有以下字符串:'2019-05-17 04:44:00:000'. 我想将其转换为日期,以便我可以根据时间戳查询我的表。

我尝试了以下导致错误的方法:

select street, city,
from_iso8601_timestamp(starttime)
from mydata where subtype='X';
INVALID_FUNCTION_ARGUMENT: Invalid format: "2019-05-17 04:44:00:000" is 
malformed at " 04:44:00:000"

SELECT street, city, date_parse(starttime,'%Y-%m-%d %H:%i:%s')
from mydata where subtype='X';
INVALID_FUNCTION_ARGUMENT: Invalid format: "2019-05-17 04:44:00:000" is malformed at " 04:44:00:000"
Run Code Online (Sandbox Code Playgroud)

在 Athena 中转换它的正确方法是什么?有毫秒参数吗?

jen*_*ter 6

您可以使用以下模式解析给定的字符串。

'%Y-%m-%d %H:%i:%s:%f'
Run Code Online (Sandbox Code Playgroud)

%f 代表几分之一秒,最多可解析为微秒。

总的来说,这将导致以下查询。

SELECT date_parse('2019-05-17 04:44:00:000','%Y-%m-%d %H:%i:%s:%f')
Run Code Online (Sandbox Code Playgroud)

有关更多信息,您可以查看官方文档