在redshift查询编辑器中从字符变量中提取Year

时间:2019-01-16 08:41:30

标签: amazon-redshift

我的redshift表中有一个变量。变量名是service_date,它是一个字符变量。我想从这个变量中获得年份。我正在使用以下代码,但无法正常工作。

extract(year from (cast(service_date as date)) 

日期的样本数据-

17-Mar-10
2-Mar-10
19-Nov-10
19-Nov-10 etc.

1 个答案:

答案 0 :(得分:1)

您可以按照以下方式进行操作:

来自时间戳记

 select DATE_PART_YEAR('2019-01-15 04:47:22');
 date_part_year
 -----------
       2019
(1 row)

自日期

 select  DATE_PART_YEAR('2019-01-15');

 date_part_year
 -----------
       2019
 (1 row)

但是查看示例数据,可以很容易地理解,您的数据是文本格式而不是日期格式,因此它需要为casted first to the date,然后可以使用DATE_PART_FUNCTION。 / p>

select DATE_PART_YEAR(to_date('10-Nov-15','DD-Mon-YY'));

此处to_date函数将text转换为date,然后提取Year。 希望这能回答您的问题。