sql Spark 时间处理函数

本文介绍了如何在SQL中进行日期和时间的处理,包括提取年、月、日、时,日期格式转换,时间加减,以及获取当前日期、上周、本月等特定日期的方法。还涉及到日期差计算和月份之间的运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

year() month() day() hour():

日期转化:要处理的数据格式为'yyyy-mm-dd hh:mm:ss'

计算数据'2023-01-01 12:01:00'

year():取数据的年 year('2023-01-01 12:01:00') ----2023

month():取数据的月份 month('2023-01-01 12:01:00') ----01

day():取数据的日 day('2023-01-01 12:01:00') ----01

hour():取数据的小时 hour('2023-01-01 12:01:00') ----12

date():

转化为年月日的形式:

 date('2023-01-01 12:01:00')----2023-01-01

或者使用字符串截断的形式:

substr('2023-01-01 12:01:00',1,10)   -----2023-01-01  代表截取第一个字符到第10个字符的内容

时间加一秒:

from_unixtime(unix_timestamp('2023-01-01 12:01:00')+1,'yyyy-MM-dd HH:mm:ss')-----2023-01-01 12:01:01

日期格式转化:

select

date_format('2023-01-01','y') --2023date_format('2023-01-01','yyyyMMdd') ---20230101

,date_format('2023-01-01','M') ---1  1月

,date_format('2023-01-01','u') --7(星期天)

,date_format('2023-01-01','d')--1  1号

,date_format('2023-01-01','a')--AM

,date_format('20230101,'yyyy-MM-dd')---2023-01-01

,from_unixtime(unix_timestamp('20230101','yyyymmdd'),'yyyy-mm-dd')  -----2023-01-01

当天日期:

current_date()

前一天日期:

date_add(current_date(),-1)---加上负一天

date_sub(current_date(),1)---减去一天

月末最后一天日期:

last_day(current_date())--月末最后一天

两日期之差:

datediff(now(),befor)--返回两天的天数

date_diff('day',now(),befor)--presto

秒数之差:

(unix_timestamp(call_start_time)-unix_timestamp( les_stu_started_at))

本周周一日期:

date_add(current_date(),cast(1-date_format(current_date(),'u') as int)) 

本周周日日期:

date_add(current_date(),cast(7-date_format(current_date(),'u') as int))--日期型

转化为当年第几周:

weekofyear(current_date())--当天是当年的第几周

月份加减:

add_months(current_date(), -1)---上一个月的当天日期 返回'yyyy-mm-dd'

add_months(substr(current_date(),1,7), -1)---上一个月 返回'yyyy-mm-01'

date_format(month-interval'1'month,'yyyy-MM')--上一个月 返回'yyyy-mm'

月份之差:

months_between(date_now,date_befor)--输入日期格式为'yyyy-mm' 返回相差几个月

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值