从 Presto SQL 中的字符串获取日期

Posted

技术标签:

【中文标题】从 Presto SQL 中的字符串获取日期【英文标题】:Getting date from String in Presto SQL 【发布时间】:2020-11-12 08:57:48 【问题描述】:

我正在尝试使用 presto 查询

SELECT date_parse(new_date,'%m/%d/%Y %h:%i:%s %p') FROM datatable

new_date 的格式在哪里

"2/19/2020 03:06:48 AM"

但是,我得到了错误:

INVALID_FUNCTION_ARGUMENT:无效格式:“2/19/2020 03:06:48 AM”在“03:06:48 AM”格式错误

我做错了什么?

【问题讨论】:

尝试运行这个:SELECT date_parse('2/19/2020 03:06:48 AM','%m/%d/%Y %h:%i:%s %p') 可以吗? 【参考方案1】:

你的格式是正确的:

presto> SELECT date_parse('2/19/2020 03:06:48 AM', '%m/%d/%Y %h:%i:%s %p');
          _col0
-------------------------
 2020-02-19 03:06:48.000
(1 row)

(在 Presto 339 上验证)

另见date_parse documentation。

我认为这可能是我们已经在 Presto 中修复的一些问题。 您使用的是哪个 Presto 版本?

【讨论】:

我相信这是基于 Presto 0.172 的 Amazon Athena 查询引擎。 我确认此查询适用于 0.172。以防万一,您可以尝试使用文字参数而不是 new_date 数据吗?

以上是关于从 Presto SQL 中的字符串获取日期的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Presto 中获取连续日期,其中一列中的开始日期和另一列中的结束日期

Presto TIMESTAMP 从 2 天前获取数据而不输入年月日期?

如何从 SQL 中的日期获取字符串类型的月份?

使用 Athena / Presto 从多个表返回 SQL 数据,受 1 个表中的日期范围限制

在 Presto SQL 中将整数值转换为日期

sql中,根据身份证号码截取出了出生日期,怎么获取当前年龄,精确到月、日?