首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fiscal财政季度

fiscal财政季度
EN

Stack Overflow用户
提问于 2016-12-15 07:57:05
回答 1查看 881关注 0票数 1

我想得到一个类似于2011-Q4 (金融Yr)的产出。

我可以这样做:

代码语言:javascript
复制
CASE -- Results: 2011-Q4 (Financial Yr-Qtr)
     WHEN MONTH(MyDate) BETWEEN 1 AND 3 THEN concat((YEAR(MyDate) - 1), '-', 'Q4')
     WHEN MONTH(MyDate) BETWEEN 4 AND 6 THEN concat((YEAR(MyDate) - 1), '-', 'Q1')
     WHEN MONTH(MyDate) BETWEEN 7 AND 9 THEN concat((YEAR(MyDate) - 0), '-', 'Q2')
     WHEN MONTH(MyDate) BETWEEN 10 AND 12 THEN concat((YEAR(MyDate) - 0), '-', 'Q3')
 END AS FYrQtr

但是,在不使用CONCAT的情况下,能否实现相同的输出呢?(我只有2008年的工作时间;CONCAT是在2012年到达的)。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-15 08:26:22

在这种情况下,您可以简单地使用+运算符加上一些cast()

代码语言:javascript
复制
CASE -- Results: 2011-Q4 (Financial Yr-Qtr)
     WHEN MONTH(MyDate) BETWEEN 1 AND 3 THEN cast(YEAR(MyDate) - 1 as char(4)) + '-Q4'
     WHEN MONTH(MyDate) BETWEEN 4 AND 6 THEN cast(YEAR(MyDate) - 1 as char(4)) + '-Q1'
     WHEN MONTH(MyDate) BETWEEN 7 AND 9 THEN cast(YEAR(MyDate) - 0 as char(4)) + '-Q2'
     WHEN MONTH(MyDate) BETWEEN 10 AND 12 THEN cast(YEAR(MyDate) - 0 as char(4)) + '-Q3'
END FYrQtr

(但请注意cast()函数的使用:concat()执行从int到char类型的隐式转换,而+运算符要求左部分和右部分为char类型)

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

https://stackoverflow.com/questions/41159088

复制
相关文章

相似问题

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