首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在中将日期转换为正确的年份和半年?

如何在中将日期转换为正确的年份和半年?
EN

Stack Overflow用户
提问于 2017-04-03 14:49:13
回答 1查看 1.7K关注 0票数 3

这给了我从任何日期开始的年份和季度:

CONCAT(STRING(年份(Mydate)),'-Q',STRING(四分之一(Mydate)作为季度

结果:2016-2,2016-3,2016-4,2017-Q1,等等

我该写什么才能拿到半年?(2017-S1,2017-S2等)

S1 (第一学期)在1月1日至6月30日之间;S2 (第2学期)在7月1日至12月31日之间。

将日期转换为季度并将其他表数据连接到正确的季度没有问题,但不知道如何处理半年(我知道sql中不存在直接公式)。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-03 14:58:44

在下面尝试(它在Legacy SQL中,因为我看到您仍然在使用它)

代码语言:javascript
复制
#legacySQL
SELECT 
  CONCAT(STRING(YEAR(mydate)),'-Q',STRING(QUARTER(mydate))) as quarter,
  CONCAT(STRING(YEAR(mydate)),'-S',STRING(IF(QUARTER(mydate) < 3, 1, 2))) as semester
FROM 
  (SELECT CURRENT_DATE() AS mydate),
  (SELECT '2016-02-02' AS mydate), 
  (SELECT '2016-09-02' AS mydate)

如果您是migrating to Standard SQL (强烈推荐),请检查各自的版本

代码语言:javascript
复制
#standardSQL
WITH yourTable AS (
  SELECT CURRENT_DATE() AS mydate UNION ALL
  SELECT '2016-02-02' UNION ALL
  SELECT '2016-09-02' 
)
SELECT 
  mydate,
  CONCAT(FORMAT_DATE("%Y", mydate), '-Q', CAST(EXTRACT(QUARTER FROM mydate) AS STRING)) AS quarter,
  CONCAT(FORMAT_DATE("%Y", mydate), IF(EXTRACT(QUARTER FROM mydate) < 3, '-S1', '-S2')) AS semester
FROM yourTable
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43187757

复制
相关文章

相似问题

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