如何在presto sql中将字符串'yyyy-mm-dd'转换为日期格式

Posted

技术标签:

【中文标题】如何在presto sql中将字符串\'yyyy-mm-dd\'转换为日期格式【英文标题】:How to convert string 'yyyy-mm-dd' to date format in presto sql如何在presto sql中将字符串'yyyy-mm-dd'转换为日期格式 【发布时间】:2020-10-11 06:00:43 【问题描述】:

在 presto SQL 中,日期保存为字符串,如“2020-06-10”。我要转换成日期格式(yyyy-mm-dd)

我就是这样做的:

select date_format(date_parse('2020-06-10', '%Y-%m-%d'),'%Y-%m-%d')

首先我将字符串转换为时间戳格式,然后将新的时间戳转换为 date_format。

我的问题是,有没有只转换一次的函数?

例如

date_parse(string, format, expect_out_put_time_format)

【问题讨论】:

没有这个功能。我们需要先转换类型,然后再格式化。 明白了。 Piotr 的评论为我节省了几次击键。 ***.com/a/62497227/13785056select date_format(date('2020-06-10'),'%Y-%m-%d') 【参考方案1】:

您可以使用date函数,它是CAST(x AS date)的快捷方式。

presto> SELECT date('2020-06-10');
   _col0
------------
 2020-06-10

【讨论】:

我尝试了 SELECT date('2020-06-10') 我得到了 June 10, 2020, 12:00 AM 但我保存了一些密钥-stokes,我的简化版是 select date_format(date('2020-06-10'),'%Y-%m-%d') June 10, 2020, 12:00 AM -- 这可能是您的应用程序在呈现date 值时产生的东西。如果你想得到一个 varchar 值,你似乎根本不需要任何转换,是吗?

以上是关于如何在presto sql中将字符串'yyyy-mm-dd'转换为日期格式的主要内容,如果未能解决你的问题,请参考以下文章

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

在presto MySQL中将时间戳转换为字符串?

在 Hive/Presto 中将文件路径拆分为其组成路径

如何在 Presto 中将时间戳转换为日期?

如何在presto中将列转换为数组

如何在 Presto/Hive 中将日期格式 YYYY-MM-DD 转换为整数 YYYYMMDD?