前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL中常用日期函数与日期处理需求

SQL中常用日期函数与日期处理需求

作者头像
SQL数据库开发
发布2024-04-24 19:07:45
1150
发布2024-04-24 19:07:45
举报
文章被收录于专栏:SQL数据库开发SQL数据库开发

这次分享Hive SQL常用的日期处理函数和日期处理需求,希望对大家有所帮助。

一、常用日期函数

1、current_date

含义:获取当前日期。

用法:current_date

例子:

代码语言:javascript
复制
select current_date;
>> 2022-09-13

2、current_timestamp

含义:获取当前时间。

用法:current_timestamp

例子:

代码语言:javascript
复制
select current_timestamp;
>> 2022-09-13 17:52:57.613

3、date_format

含义:将日期格式化。

用法:date_format(date,格式)

例子:

代码语言:javascript
复制
select date_format('2022-09-13 12:00:00','yyyy-MM-dd');
>> 2022-09-13

4、to_date

含义:转为日期格式,默认为yyyy-MM-dd格式。

用法:to_date(time)

例子:

代码语言:javascript
复制
select to_date(current_timestamp);
>> 2022-09-13

5、date_add

含义:日期加法函数,数字为正,则加多少天;为负,则减多少天。

用法:date_add(date,number)

例子:

代码语言:javascript
复制
select date_add('2022-09-13',3);
>> 2022-09-16
select date_add('2022-09-13',-3);
>> 2022-09-10

6、date_sub

含义:与date_add对应,日期减法函数,数字为正,则减多少天;为负,则加多少天。

用法:date_sub(date,number)

例子:

代码语言:javascript
复制
select date_sub('2022-09-13',3);
>> 2022-09-10
select date_sub('2022-09-13',-3);
>> 2022-09-16

7、add_months

含义:日期加一个月。

用法:add_months(date,number)

例子:

代码语言:javascript
复制
select add_months('2022-09-13',1);
>> 2022-10-13

8、next_day

含义:该日期的下一个周几所在的日期。(通俗理解:某日期的下周几是多少号)

用法:next_day(date,dayofweek)

例子:

代码语言:javascript
复制
select next_day('2022-09-13',"Fri");--下周五
>> 2022-09-23

9、last_day

含义:当月最后一天的日期。

用法:last_day(date)

例子:

代码语言:javascript
复制
select last_day('2022-09-13');
>> 2022-09-30

10、datediff

含义:计算两个日期之间的天数。正数表示前者大于后者,负数表示前者小于后者。

用法:datediff(date1,date2)

例子:

代码语言:javascript
复制
select datediff('2022-09-13','2022-09-10');
>> 3

11、dayofmonth

含义:日期所在月份的第多少天。

用法:dayofmonth(date)

例子:

代码语言:javascript
复制
select dayofmonth('2022-09-13');
>> 13

12、weekofyear

含义:日期所在年份的第多少周。

用法:weekofyear(date)

例子:

代码语言:javascript
复制
select weekofyear(current_date);
>> 38

13、year、month、day、hour、minute、second

二、日期处理需求

1、取当月第1天

先获取当前日期在该月的第n天,然后当前日期减去第(n-1)天。

代码语言:javascript
复制
select date_sub('2022-09-13',dayofmonth('2022-09-13')-1);
>> 2022-09-01

2、取当月第8天

先获取当前日期在该月的第n天,然后当前日期减去第(n-1)天,再增加(m-1)天。

代码语言:javascript
复制
select date_add(date_sub('2022-09-13',dayofmonth('2022-09-13')-1),8-1);
>> 2022-09-08

3、查询下一个月的第一天

方式一:先获取最后一天,然后日期+1。

代码语言:javascript
复制
select date_add(last_day('2022-09-13'),1);
>> 2022-10-01

方式二:先获取今天是当月第几天,算出当月第一天,然后加一个月。

代码语言:javascript
复制
select add_months(date_sub('2022-09-13',dayofmonth('2022-09-13')-1),1);
>> 2022-10-01

4、获取本周一的日期

先获取下周一的日期,然后减去7天。

代码语言:javascript
复制
select date_add(next_day(current_date,"MO"),-7);
>> 2022-09-12
代码语言:javascript
复制
推荐阅读SQL 常用函数整理
SQL中常用的四个排序函数
SQL优化万能公式:5 大步骤 + 10 个案例
SQL 中为什么经常要加NOLOCK?Hive中的窗口函数SQL学习路线图,首次公开
本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-04-26,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 SQL数据库开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、current_date
  • 2、current_timestamp
  • 3、date_format
  • 4、to_date
  • 5、date_add
  • 6、date_sub
  • 7、add_months
  • 8、next_day
  • 9、last_day
  • 10、datediff
  • 11、dayofmonth
  • 12、weekofyear
  • 1、取当月第1天
  • 2、取当月第8天
  • 3、查询下一个月的第一天
  • 4、获取本周一的日期
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com