我的redshift表中有一个变量。变量名是service_date,它是一个字符变量。我想从这个变量中获得年份。我正在使用以下代码,但无法正常工作。
extract(year from (cast(service_date as date))
日期的样本数据-
17-Mar-10
2-Mar-10
19-Nov-10
19-Nov-10 etc.
答案 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。
希望这能回答您的问题。