雅典娜 - 字符串到日期的覆盖

问题描述

我想将下面的字符串转换为仅日期列。该列将时间和日期都存储为字符串

字符串 2021-01-01 12:43:58 ==> 2021-01-01

解决方法

您可以通过此查询实现您想要的:

SELECT
cast(date_parse(column,'%Y-%m-%d') as date)
FROM
table
,

您可以将 date_formatdate_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')

现在使用 cast 如下图

SELECT cast(date_parse('2021-01-01 12:43:58','%Y-%m-%d %h:%i:%s') 作为日期)

同样用列名替换时间戳

,

对于什么是有价值的,这是一个无需从字符串到日期来回转换的解决方案:

select substr(column,1,10) from mytable