1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 这是date_parse的期望输出,“解析时间戳”/“返回时间戳”,请按照这个presto文档:https://prestodb.io/docs/current/functions/datetime.html#mysql-date-functions。您可以使用此查询从时间戳中截断时间部分。
select Date(date_parse('2022-03-01','%Y-%m-%d'))
此外,请注意,Athena用于DML查询的查询执行使用presto。因此,为了编写符合Athena标准的DML查询,我们必须仅使用presto函数。
在这里,date_parse()期望一个字符串参数,并将其解析为时间戳格式。现在,由于您还有空值,这里我有一个问题,这些空值是以“”还是null的形式存在于您的表中,因为如果空值以“null”的形式存在,则date_parse应该可以正常工作。像下面这样:
select Date(date_parse(null,'%Y-%m-%d'))
但这将不会:
select Date(date_parse('','%Y-%m-%d'))
因为看到字符串'',它仅执行解析以发现它不符合标准格式,并抛出错误INVALID_FUNCTION_ARGUMENT:无效格式:“”。为了使其工作,您可以使用此查询
select CASE date_g
WHEN '' THEN null
ELSE Date(date_parse(date_g,'%Y-%m-%d'))
END
FROM Table_name
相关内容
- AWS 官方已更新 3 年前
- AWS 官方已更新 10 个月前