问题描述
我想将下面的字符串转换为仅日期列。该列将时间和日期都存储为字符串
字符串 2021-01-01 12:43:58 ==> 2021-01-01
解决方法
您可以通过此查询实现您想要的:
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')
现在使用 cast 如下图
SELECT cast(date_parse('2021-01-01 12:43:58','%Y-%m-%d %h:%i:%s') 作为日期)
同样用列名替换时间戳
,对于什么是有价值的,这是一个无需从字符串到日期来回转换的解决方案:
select substr(column,1,10) from mytable