首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将CONCAT与SUBSTR结合使用

将CONCAT与SUBSTR结合使用
EN

Stack Overflow用户
提问于 2019-04-16 00:01:55
回答 3查看 114关注 0票数 0

我想写一个仅返回不同年份(2018、2017、2016)的select。

我在表的历史记录中有AS_OF_DATE列。

以下是AS_OF_DATE的一些示例值:

代码语言:javascript
复制
31-05-18,
31-04-17,
31-07-16,
...

这就是我所尝试的,但它不起作用:

代码语言:javascript
复制
SELECT CONCAT('20',DISTINCT SUBSTR(AS_OF_DATE, 7, 2) FROM HISTORY

我使用CONCAT在结果和SUBSTR前面添加20,SUBSTR将从第7个字符串开始,长度为2个字符串(因此我得到18,17,16...)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-04-16 00:03:24

尝试如下所示

代码语言:javascript
复制
SELECT DISTINCT '20' || SUBSTR(AS_OF_DATE, 7, 2) FROM HISTORY
票数 2
EN

Stack Overflow用户

发布于 2019-04-16 00:10:15

通常,您可以使用extract()to_char()执行此操作

代码语言:javascript
复制
select extract(year from as_of_date) as yyyy

代码语言:javascript
复制
select to_char(as_of_date, 'YYYY') as yyyy

这里假设as_of_date是一个日期,它应该是。

如果需要具有不同年份的结果集,可以添加select distinct

票数 1
EN

Stack Overflow用户

发布于 2019-04-16 03:55:06

这将会起作用:

代码语言:javascript
复制
select distinct extract(year from as_of_date) from History;

如果日期是date数据类型,则extract函数将去掉as_of_date,并且对于在提取中多次出现的日期,distinct只选择一个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55693123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档