跨年周:

如果一周中某几天在前一年,而剩下几天在后一年,那么这周是哪一年的周?

Hive中: weekofyear (string date) 返回值为 int

从周一到周日为一个完整的周

若一周7天中,有4天及以上在某年,那么这一周就作为这一年的周。

在hive中需要获取 yyyyww 这样的年周时,采用case when方式生成

-- 返回形式: yyyyww

select case when weekofyear('2021-01-01') < 10 and month('2021-01-01') > 11

then cast((year('2021-01-01')+1)*100 + weekofyear('2021-01-01') as string)

when weekofyear('2021-01-01') > 10 and month('2021-01-01') < 2

then cast((year('2021-01-01')-1)*100 + weekofyear('2021-01-01') as string)

else cast(year('2021-01-01')*100 + weekofyear('2021-01-01') as string)

end as create_date

在hive中需要获取 yyyy-ww 这样的年周时,采用case when方式生成

-- 周期:周(在Spark中没有yearweek函数, 返回值, 如201950, 只有weekofyear,返回值:周, 如:50)

-- 返回形式: yyyy-ww, 解决weekofyear返回值小于9时, 前面不补0问题

-- CASE WHEN写法

select case when weekofyear('2019-12-31') < 10 and month('2019-12-31') > 11

then concat_ws('-', cast(year('2019-12-31') + 1 as string), substr(concat('0', cast(weekofyear('2019-12-31') as string)), -2))

when weekofyear('2019-12-31') > 10 and month('2019-12-31') < 2

then concat_ws('-', cast(year('2019-12-31') - 1 as string), substr(concat('0', cast(weekofyear('2019-12-31') as string)), -2))

else concat_ws('-', cast(year('2019-12-31') as string), substr(concat('0', cast(weekofyear('2019-12-31') as string)), -2))

end as create_date

MySQL中:WEEK(date[, mode]);WEEKOFYEAR(date);YEARWEEK(date[, mode])

mode参数决定了,使用星期几作为一周的开始,以及用什么样的逻辑,来计算一年里的第一周。

WEEKOFYEAR(date) 相当于 WEEK(date, 3)

YEARWEEK(date, 3) 在week之前加上了年份,输出格式与以上hive的case when 输出结果一致。

-- 等价于 MySQL中的: YEARWEEK(substring('2020-11-16', 1, 10), 3);

-- MySQL中:: WEEK(date[,mode]); WEEKOFYEAR(date); YEARWEEK(date[,mode])

-- mode参数决定了, 使用星期几作为一周的开始, 以及用什么样的逻辑, 来计算一年里的第一周

-- 返回形式: yyyyww

select YEARWEEK(substring('2020-11-16', 1, 10), 3);

其中第二个参数是 mode ,具体指的意思如下:

模式一周的第一天范围第1周是第一周......

0星期日0-53星期的第一天是星期日

1星期一0-53一周的第一天是星期一,第一周超过3天

2星期日1-53星期的第一天是星期日

3星期一1-53一周的第一天是星期一,第一周超过3天

4星期日0-53一周的第一天是星期日,第一周超过3天

5星期一0-53一周的第一天是星期一

6星期日1-53一周的第一天是星期日,并且第一周超过3天

7星期一1-53一周的第一天是星期一

mysql查询自然周_Hive和MySQL中自然周保持一致的方法相关推荐

  1. mysql查询唯一单词_MySql从表中获取唯一单词列表,其中字段中的值用逗号分隔

    我不确定这是否可以用纯SQL(MySQL),但无论如何我会问.我有这样一张桌子: ID TAGS ----------------------------- 1 word1,word2,word3 2 ...

  2. mysql查询交叉连接_复杂的MySQL查询,联合,交叉或自然连接?

    MySQL查询有一个奇怪的问题,我无法真正弄清楚如何按照我的意愿组织数据. 我正在PHP中构建搜索脚本,但数据库结构并非如我所愿. 好的,假设我有三张桌子(这些桌子完全组成): EMPLOYES id ...

  3. 记一次Mysql查询字段为空串在java中使用equals不相等的问题

    相关内容: Mysql utf8 和utf8mb4 的区别 Mysql 批量更改数据表和字段的字符集(Mysql UTF-8字符集更改为utf8mb4字符集) 问题 在mysql中查询一条记录,然后使 ...

  4. PHP中mysql查询全部过程_PHP到MySQL数据查询过程概述_MySQL

    摘要 本文概述了从PHP层发起mysql查询请求到mysql server 返回结果集的工作流程,并简单描述了各层可能涉及到的动作和组件.从全局把握整个交互过程. PHP层到MySQL层 Php到sq ...

  5. mysql查询时,offset过大影响性能的原因与优化方法

    遇到的问题 我们大家都知道,mysql查询使用select命令,配合limit,offset参数可以读取指定范围的记录,但是offset过大影响查询性能的原因及优化方法,这次工作中因为要导出40W的数 ...

  6. php 输出mysql查询结果_php如何输出mysql查询结果

    php输出mysql查询结果的方法:首先,用navicat创建一个新的数据库,并创建一个新的表表2::然后在表2中添加新数据,并使用[mysql_connect]函数与页面中的数据库建立连接:然后选择 ...

  7. mysql 查询最顶级_2018顶级MySQL博客作者

    mysql 查询最顶级 We made a collection of the most popular MySQL bloggers, including a link to each indivi ...

  8. mysql查询结果作为附件_python3+mysql查询数据并通过邮件群发excel附件

    python3+mysql查询数据并通过邮件群发excel附件 来源:中文源码网    浏览: 次    日期:2018年9月2日 python3+mysql查询数据并通过邮件群发excel附件 本文 ...

  9. mysql查询班级作业提交情况_MySQL中查询获取每个班级成绩前三名的学生信息

    标签: 今天有同事说到了怎么MySQL中查询获取每个班级成绩前三名的学生信息,在网上查了查,然后写出代码,很快就OK了. CREATE TABLE t_testscore(    pk_id INT ...

  10. 分分钟解决 MySQL 查询速度慢与性能差(中)

    点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 唐成勇 https://segmentfault.com/a/119000001374 ...

最新文章

  1. 最新技术前沿与产业风向标来了,百度研究院发布2021年十大趋势
  2. Google的深度学习强在哪?谷歌首席科学家说了这些奇妙特性
  3. 【创业】创业公司股权架构设计注意事项
  4. c语言用数组发送大写字母怎么读,c语言字符数组大小写转换
  5. 递归转化成非递归过程_8086微处理器中的递归和重入过程
  6. python list切片步长
  7. webRTC之Mesh/MCU/SFU通信架构区别(九)
  8. 用python画椭圆解释_怎么用python画椭圆?
  9. ActiveReports报表控件V11 SP1版本正式发布!
  10. 最后一本书 上机5(翻书)
  11. 计算机图形学笔记(六)
  12. mysql 最左原则是什么意思_数据库中的“紧左原则”是什么意思?
  13. 内置python数据类型_python基础之数据类型及内置方法
  14. 《计算机网络原理》IP部分
  15. 郭锡良古代汉语复习重点总结
  16. mysql客户端如何登录_MySQL-客户端登录问题
  17. C++词法记号规则之标识符 关键字 操作符 分隔符 空白符
  18. journald.conf 中文手册
  19. 坑,爱转换PDF转换器,熊猫办公
  20. Vue 中使用 Font Awesome 字体图标

热门文章

  1. 百度、腾讯和阿里内部的级别和薪资待遇是什么样的?
  2. 神经网络和深度学习(一)——初识神经网络
  3. 添加微信防封域名或者网址、url-不死鸟微信防封系统api-SDK(五)
  4. 十大概念:每个软件工程师的必备
  5. 数理统计 -次序统计量、充分统计量
  6. 慕课软件工程(第五章.初始模块结构图精化的原则)
  7. Android插件化开发指南——实践之ViewPager+Fragment优化(预加载和懒加载)
  8. linux超市参数,TI AM5708开发板产品参数介绍
  9. c语言实验作业感想,c语言程序报告实验总结(共10篇).docx
  10. Heartbeat高可用软件服务--1.Heartbeat介绍(2)