【发布时间】:2021-07-29 20:56:50
【问题描述】:
我想将下面的字符串转换为仅日期列。该列将时间和日期都存储为字符串
字符串 2021-01-01 12:43:58 ==> 2021-01-01
【问题讨论】:
标签: amazon-athena
我想将下面的字符串转换为仅日期列。该列将时间和日期都存储为字符串
字符串 2021-01-01 12:43:58 ==> 2021-01-01
【问题讨论】:
标签: amazon-athena
你可以通过这个查询实现你想要的:
SELECT
cast(date_parse(column, '%Y-%m-%d') as date)
FROM
table
【讨论】:
您可以使用 date_format 和 date_parse 或作为日期来实现:
SELECT date_format(date_parse('2021-01-01 12:43:58', '%Y-%m-%d %h:%i:%s'),'%Y-%m-%d')
会给2021-01-01
只需将时间戳替换为列名
SELECT date_format(date_parse(<timestamp_column>, '%Y-%m-%d %h:%i:%s'),'%Y-%m-%d')
现在使用 cast 如下所示
SELECT cast(date_parse('2021-01-01 12:43:58', '%Y-%m-%d %h:%i:%s') as date)
类似地用列名替换时间戳
【讨论】:
对于什么是有价值的,这是一个无需从字符串到日期来回转换的解决方案:
select substr(column,1,10) from mytable
【讨论】: