Amazon redshift 在红移查询编辑器中从字符变量提取年份

Amazon redshift 在红移查询编辑器中从字符变量提取年份,amazon-redshift,Amazon Redshift,我的红移表中有一个变量。变量名是service_date,它是一个字符变量。我想从这个变量中得到年份。我正在使用下面的代码,但它不工作 extract(year from (cast(service_date as date)) 日期样本数据- 17-Mar-10 2-Mar-10 19-Nov-10 19-Nov-10 etc. 你可以按照下面的方法做-- 从时间戳开始 select DATE_PART_YEAR('2019-01-15 04:47:22'); date_part_y

我的红移表中有一个变量。变量名是service_date,它是一个字符变量。我想从这个变量中得到年份。我正在使用下面的代码,但它不工作

extract(year from (cast(service_date as date)) 
日期样本数据-

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

你可以按照下面的方法做--

从时间戳开始

 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)
但是查看示例数据,可以很容易地理解,您的数据是文本格式而不是日期格式,因此需要先将其铸造到日期,然后才能使用
日期部分功能

select DATE_PART_YEAR(to_date('10-Nov-15','DD-Mon-YY'));
这里的
to_date
函数将
文本
转换为
日期
,然后提取年份。
希望这能回答您的问题。

我正在尝试日期-部件-年份(服务-日期)和日期-部件-年份(“服务-日期”)都不起作用。应该起作用,请在您的问题中添加一些
服务-日期的示例数据。这将很容易使用这些数据来确认您的索赔。请在下面查找。17-Mar-10 2-Mar-10 19-Nov-10 19-Nov-10 5-Mar-10 5-Mar-10 5-Mar-10 5-Mar-10 5-Mar-10 5-Mar-10那些看起来像字符串而不是日期值,你能检查一下该列的类型吗?是日期/时间戳吗?如果它们是字符串,那么请看一看,您可以使用它将字符串转换为日期,然后使用date_part_year,如Red Boy所述,这样做
选择date_part_year(to_date('10-Nov-15','DD-Mon-YY')