繁体   English   中英

如何使用 Presto 从 varchar 日期字段中提取日/月/年等?

[英]How to extract day/month/year etc from varchar date field, using Presto?

我目前有带日期的表,以 YYYY-MM-DD 格式设置为 VARCHAR,例如:

2017-01-01

我正在使用的日期列称为“event_dt”

我习惯于在 Hive 中使用day(event_dt), month(event_dt), year(event_dt)等,但是当查询失败时,Presto 只是给我error executing query而没有其他解释。

因此,例如,我尝试过:

select
month(event_dt)
from
my_sql_table
where
event_dt = '2017-01-01'

我希望 output 能够读取:

01

但我得到的只是[Code: 0, SQL State: ] Error executing query

我尝试了 Presto 文档中列出的其他一些方法,但完全没有运气。 我意识到这可能非常简单,但任何帮助将不胜感激。

在使用 date() function 将varchar转换为date后,您可以使用month() date() function:

presto> select month(date('2017-01-01'));
 _col0
-------
     1
(1 row)

感谢@LukStorms 在对原始问题的评论中,我找到了两个解决方案:

  1. 使用月份(cast(event_dt as date))
  2. 使用月份(日期(event_dt))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM