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' 返回相差几个月