当前位置: 首页 > 知识库问答 >
问题:

如何在Presto(雅典娜)中将字符串转换为时间戳?

琴正初
2023-03-14

我想将字符串的数据类型(例如:'2018-03-27T00:20:00.855556Z')转换为时间戳(例如:'2018-03-27 00:20:00')。

select * from tb_name where elb_status_code like '5%%' AND 
date between DATE_ADD('hour',-2,NOW()) AND NOW(); 

但我错了:

syntax_error:line 1:100:无法检查varchar是否介于带时区的时间戳和带时区的时间戳之间

该查询针对“vf_aws_metrices”数据库运行,除非由查询限定。请在我们的论坛上发布错误信息或联系客户支持,查询ID:6B4AE2E1-F890-4B73-85EA-12A650D69278。

原因:因为日期是字符串格式的,必须转换成时间戳。但我不知道怎么转换。

共有1个答案

薛博艺
2023-03-14

尝试使用from_iso8601_timestamp。请访问以下地址了解有关时间戳相关函数的更多信息:https://docs.starburstdata.com/latest/functions/datetime.html

presto:tiny> select from_iso8601_timestamp('2018-03-27T00:20:00.855556Z');
            _col0
-----------------------------
 2018-03-27 00:20:00.855 UTC
(1 row)

我相信您的查询应该看起来像:

select * from tb_name where elb_status_code like '5%%' AND 
from_iso8601_timestamp(date) between DATE_ADD('hour',-2,NOW()) AND NOW(); 
 类似资料:
  • 我有一个表,其中datetime存储为varchar,但表示纪元时间(例如1556895150)。如何在雅典娜/使用presto中将该值识别为时间戳?类似dateadd函数的功能可以工作,但Athena没有dateadd(我设想了类似dateadd('second',expressoin,'1970-01-01 00:00:00'。简单的强制转换(expressoin作为类型)在这里不起作用,因为

  • 我在AWS雅典娜中使用以下查询: 如果我加上一个限制10,它就行了。但当我尝试对所有记录执行此操作时,我得到以下错误:处格式不正确 string type列中的所有日期都像这样-2/22/2020并且它正确地转换了。我不明白为什么它不会对其余的人做同样的事。

  • 如何使用雅典娜查询编辑器将字符串类型的列转换为日期类型。我正在尝试使用date_parse(字符串,格式),但在尝试以下操作时遇到以下问题: 有没有更简单的方法做到这一点?还是我错过了什么?感谢任何帮助!

  • 问题内容: 我正在尝试创建以下视图: 它给了我以下错误: 您的查询具有以下错误:不支持的配置单元类型:带有时区的时间戳 但是,当我自己运行查询时,它可以正常工作,并且在这里提到From_iso8601_timestamp作为有效的日期函数。 谁能告诉我我在做什么错? 问题答案: 不幸的是,雅典娜并不完全支持Presto的所有功能,它具有局限性,并且在技术上比Presto落后几个版本。有一些尝试使A

  • 问题内容: 我有以下字符串,这是一个字符串化的Python字典: 如何从上述字符串中获取Python字典? 问题答案: 好吧,你可以做 但是,如果字符串包含用户输入,则是个坏主意,因为表达式中可能包含一些随机的恶意函数。 因此,更安全的选择可能是: 来自http://docs.python.org/library/ast.html#ast.literal_eval: 提供的字符串或节点只能由以下P

  • 问题内容: 我有一个程序可以从套接字读取xml文档。我将xml文档存储在一个字符串中,我想将其直接转换为Python字典,就像在Django的库中一样。 举个例子: 然后看起来像 问题答案: 这是某人创建的一个很棒的模块。我已经使用过几次了。 http://code.activestate.com/recipes/410469-xml-as- dictionary/ 这是网站上的代码,以防万一链接