如何做一张能支持标注中国节假日的日历表呢,话不多说见Code~

with festival as (select f.`date` as festival_date,f.name as festival_name,if(f.not_work == 'yes', True, False) as not_workfrom (select array(named_struct('date', '2019-01-01', 'name', '元旦', 'not_work', 'yes'),named_struct('date', '2019-02-02', 'name', '元旦', 'not_work', 'no'),named_struct('date', '2019-02-03', 'name', '春节', 'not_work', 'no'),named_struct('date', '2019-02-04', 'name', '春节', 'not_work', 'yes'),named_struct('date', '2019-02-05', 'name', '春节', 'not_work', 'yes'),named_struct('date', '2019-02-06', 'name', '春节', 'not_work', 'yes'),named_struct('date', '2019-02-07', 'name', '春节', 'not_work', 'yes'),named_struct('date', '2019-02-08', 'name', '春节', 'not_work', 'yes'),named_struct('date', '2019-02-09', 'name', '春节', 'not_work', 'yes'),named_struct('date', '2019-02-10', 'name', '春节', 'not_work', 'yes'),named_struct('date', '2019-04-05', 'name', '清明节', 'not_work', 'yes'),named_struct('date', '2019-04-06', 'name', '清明节', 'not_work', 'yes'),named_struct('date', '2019-04-07', 'name', '清明节', 'not_work', 'yes'),named_struct('date', '2019-04-27', 'name', '劳动节', 'not_work', 'no'),named_struct('date', '2019-04-28', 'name', '劳动节', 'not_work', 'no'),named_struct('date', '2019-04-29', 'name', '劳动节', 'not_work', 'yes'),named_struct('date', '2019-04-30', 'name', '劳动节', 'not_work', 'yes'),named_struct('date', '2019-05-01', 'name', '劳动节', 'not_work', 'yes'),named_struct('date', '2019-06-07', 'name', '端午节', 'not_work', 'yes'),named_struct('date', '2019-06-08', 'name', '端午节', 'not_work', 'yes'),named_struct('date', '2019-06-09', 'name', '端午节', 'not_work', 'yes'),named_struct('date', '2019-09-13', 'name', '中秋节', 'not_work', 'yes'),named_struct('date', '2019-09-14', 'name', '中秋节', 'not_work', 'yes'),named_struct('date', '2019-09-15', 'name', '中秋节', 'not_work', 'yes'),named_struct('date', '2019-09-29', 'name', '国庆节', 'not_work', 'no'),named_struct('date', '2019-10-01', 'name', '国庆节', 'not_work', 'yes'),named_struct('date', '2019-10-02', 'name', '国庆节', 'not_work', 'yes'),named_struct('date', '2019-10-03', 'name', '国庆节', 'not_work', 'yes'),named_struct('date', '2019-10-04', 'name', '国庆节', 'not_work', 'yes'),named_struct('date', '2019-10-05', 'name', '国庆节', 'not_work', 'yes'),named_struct('date', '2019-10-06', 'name', '国庆节', 'not_work', 'yes'),named_struct('date', '2019-10-07', 'name', '国庆节', 'not_work', 'yes'),named_struct('date', '2019-10-12', 'name', '国庆节', 'not_work', 'no')) as arr)alateral view explode(arr) t as f
)
select`date`,month,quarter,year,day,day_of_week,date_format(`date`, 'EEE') as day_of_week_s, date_format(`date`, 'D') as day_of_year, datediff(`date`, "1970-01-01") as day_of_epoch,date_format(`date`, 'W') as week_of_month, date_format(`date`, 'w') as week_of_year, date_add(`date`, 1 - cast(day_of_week as int)) as week_start_date,date_add(`date`, 7 - cast(day_of_week as int)) as week_end_date,datediff(concat(next_month_str, '-01'), concat(month_str, '-01')) as month_size,date_add(concat(next_month_str, '-01'), -1) as month_end_date,date_add(concat(month_str, '-01'), -1) as last_month_end_date,if(day_of_week in ('6','7'), true, false) as is_weekend,if(f.festival_date is not null and f.not_work, true, false) as is_festival_holiday,if(f.festival_date is not null and f.not_work = false, true, false) as is_festival_workday
from (select `date`,day(`date`) as day,date_format(`date`, 'u') as day_of_week,month(`date`) as month,cast(month(`date`)/4 + 1 AS BIGINT) as quarter,year(`date`) as year,substr(`date`, 0, 7) as month_str,substr(date_add(concat(substr(`date`,0,8), '01'), 40), 0, 7) as next_month_strfrom (SELECT date_add('2019-01-01', t.pos) as `date`from(select posexplode(split(repeat(',', 365), ','))) t)aa
)a left join festival as f
on a.`date` = f.festival_date
SORT BY date

使用hive制作一张日历表相关推荐

  1. 存储过程案例详解,如何制作一张日历表?

    点击关注上方"SQL数据库开发", 设为"置顶或星标",第一时间送达干货 之前给小伙伴们普及了一下存储过程的基础知识,还没看的可以戳这里: SQL存储过程的详细 ...

  2. 【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈

    [百度地图API]如何制作一张魔兽地图!!--CS地图也可以,哈哈哈 原文:[百度地图API]如何制作一张魔兽地图!!--CS地图也可以,哈哈哈 摘要: 你玩魔兽不?你知道如何做一张魔兽地图不?! 快 ...

  3. 如何用FineReport制作一张报表(一)

    1. 描述 这篇文档通过制作一张简单普通报表,让大家可以快速了解 FineReport 报表的制作流程. 1.1 报表设计流程图 1.2 第一张报表效果 在制作这张简单普通报表之前,我们先来看一下报表 ...

  4. Photoshop制作八张一寸证件照

    Photoshop制作八张一寸证件照 制作一张一寸证件照 照一张自己的证件照上传到有Photoshop软件的电脑里面. 打开Photoshop软件,点击"文件"菜单,点击" ...

  5. 教你制作一张漂亮的城市分布图 比如加油站分布地图

    上一回我们讲到了制作打印城市地图的方法,这一回呢,对如何制作分布图进行一个详细的介绍. 比如你要制作一张某地的加油站分布图,那么(使用图新地球)将地图移动到该地区后,在左侧搜索栏搜索"加油站 ...

  6. 如何制作一张完美的VR全景图片?

    VR全景如今越来越多的应用到我们的生活之中,无论是店铺展示.推广营销,还是现场直播.城市宣传等都可以看到VR全景的身影,随着5G的到来,VR全景技术也将达到一个新的高度,而VR全景也吸引了许多摄影爱好 ...

  7. iOS中制作一张水印图片

    如果这篇文章帮助到了您,希望您能点击一下喜欢或者评论,你们的支持是我前进的强大动力.谢谢! 我们在很多APP中都会看到水印图片,例如下面微博中的一张图片 下面就来分享一下怎么制作一张水印图片吧 首先生 ...

  8. 新手小白设计干货|使用ps制作一张简单海报

    新手小白如何使用ps 制作一张简单的海报作品? 制作海报之前先在脑海里构思出想要的基本风格和样式,挑选几张图片作为海报素材.比如你想要做一张红色高考助力海报,可以先在素材网站上找到红色背景. 红色隧道 ...

  9. php 图片生成封面,用ps简单制作一张漂亮的封面

    Photoshop主要处理以像素所构成的数字图像.使用其众多的编修与绘图工具,可以有效地进行图片编辑工作.ps有很多功能,在图像,图形,文字,视频,出版等各方面都有涉及.通过以上我们可以得知ps是一个 ...

最新文章

  1. inventor应用程序错误---解决方法
  2. 一步一步的写出你自己的makefile文件
  3. spring的annotation-driven配置事务管理器详解
  4. 【洛谷P1108】低价购买【dp练习】
  5. 爬虫小案例:基于Bing关键词批量下载图片(第二版)
  6. window下配置SSH连接GitHub、GitHub配置ssh key
  7. 我最喜欢的云 IDE 推荐!
  8. centos和redhat启用epel软件库
  9. PL/SQL面向过程语言
  10. swool tcp mysql_Swoole WebSocket 实现mysql实时数据展示
  11. Linux 中断学习之小试牛刀篇---Linux中断内核编程
  12. 前景检测算法(十六)--背景减除结束篇
  13. Php的入栈,PHP实现的栈数据结构示例【入栈、出栈、遍历栈】
  14. 【实战】如何通过html+css+mysql+php来快速的制作动态网页(以制作一个博客网站为列)
  15. Swift 读写 plist 文件
  16. 朱晔的互联网架构实践心得S2E3:品味Kubernetes的设计理念
  17. CTF 内存取证 USB流量分析
  18. Hypervisor介绍
  19. HTML和CSS总结(基础版)
  20. MFC+Halcon 真正实现图像缩放、平移

热门文章

  1. 三周年之后 网易游戏和阴阳师都跌落神坛了?
  2. 如何进入游戏行业成为一个程序员(摘自Geoff Howland)
  3. RISC-V技术杂谈
  4. 博客网站的选择兼开博通文
  5. [FZSZOJ 1223] 上海红茶馆
  6. Linux mkdir 命令使用介绍
  7. spoon无法初始化至少一个步骤_通俗易懂:8大步骤图解注意力机制
  8. 让后台Stopped的进程继续运行
  9. 有人相爱,有人年少财务自由,有人数据结构都背不出来
  10. 产业区块链一周新动态