1. 获取当前时间
1.1 获取yyyy-MM-dd格式的时间
select current_date()
返回类型:date
输出结果:2022-11-20
1.2 获取当前完整格式的时间
select current_timestamp()
返回类型:timestamp
输出结果:2022-11-20 16:47:31.649
2. 获取时间戳
2.1 获取当前时间的时间戳
select unix_timestamp()
返回类型:
输出结果:1669279002
2.2 获取指定时间的时间戳
select unix_timestamp(cast('2022-11-20' as date))
返回类型:
输出结果:1668873600
select unix_timestamp(cast('2022-11-20 10:00:01' as date))
返回类型:
输出结果:1668873600
select unix_timestamp('2022-11-20 10:00:01')
返回类型:
输出结果:1668909601
3. 将时间戳转为格式化的时间
select from_unixtime(unix_timestamp())
返回类型:
输出结果:2022-11-24 16:50:50
select from_unixtime(unix_timestamp(),'yyyy-MM-dd')
返回类型:
输出结果:2022-11-24
4. 将含时分秒的时间转化为yyyy-MM-dd的格式时间
select to_date('2022-11-20 10')
返回类型:
输出结果:2022-11-20
select to_date('2022-11-20 10:10:10')
返回类型:
输出结果:2022-11-20
5. 将时间处理成想要的格式
select date_format('2022-10-11','yyyy-MM')
返回类型:
输出结果:2022-10
select date_format('2022-10-10 10','yyyy')
返回类型:
输出结果:2022
select date_format('2022-10-10 10:10','yyyy-MM-dd HH')
返回类型:
输出结果:2022-10-10 00
select date_format('2022-10-10 10:10:10','yyyy-MM-dd HH')
返回类型:
输出结果:2022-10-10 10
select date_format('2022/10/10','yyyyMMdd')
返回类型:
输出结果:null
6. 获取指定时间的年/季度/月/日/时/分/秒
6.1 获取指定时间的年
select year('2022-11-11')
返回类型:
输出结果:2022
select year('2022-11-11 10')
返回类型:
输出结果:2022
6.2 获取指定时间的季度
select quarter('2022-11-11')
返回类型:
输出结果:4
select quarter('2022-11-11 10')
返回类型:
输出结果:4
6.3 获取指定时间的月
select month('2022-11-10 10')
返回类型:
输出结果:11
6.4 获取指定时间的日
select day('2022-11-09 10')
返回类型:
输出结果:9
6.5 获取指定时间的时
select hour('2022-11-09 07:00:00')
返回类型:
输出结果:7
select hour('2022-11-09 07:00:00')
返回类型:
输出结果:0
6.6 获取指定时间的分
select minute('2022-11-09 07:08:00')
返回类型:
输出结果:8
select minute('2022-11-09 07:08')
返回类型:
输出结果:0
6.7 获取指定时间的秒
select second('2022-11-09 07:08:06')
返回类型:
输出结果:6
7. 获取前后n天的时间
7.1 date_add
select date_add('2022-11-20',2)
返回类型:string
输出结果:2022-11-22
select date_add('2022-11-20',-2)
返回类型:string
输出结果:2022-11-18
7.2 date_sub
select date_sub('2022-11-20',2)
返回类型:string
输出结果:2022-11-18
select date_sub('2022-11-20',-2)
返回类型:string
输出结果:2022-11-22
8. 获取前后n个月的时间
select add_months('2022-11-20 10',2)
返回类型:string
输出结果:2023-01-20
select add_months('2022-11-20 10',-2)
返回类型:string
输出结果:2022-09-20
select add_months('2022-11',-2)
返回类型:string
输出结果:null
9. 获取当前时间是一年中的第几天
select dayofyear('2022-01-01')
返回类型:
输出结果:null
10. 获取当前时间是一月中的第几天
select dayofmonth('2022-01-01')
返回类型:
输出结果:1
11. 获取当前时间是一年中的第几周
select weekofyear('2022-01-01')
返回类型:int
输出结果:52
select weekofyear('2022-01-07')
返回类型:int
输出结果:1
12. 获取当月的最后一天
select last_day('2022-11-05')
返回类型:
输出结果:2022-11-30
select last_day('2022-11-05 10')
返回类型:
输出结果:2022-11-30
13. 获取下一个星期几
select next_day('2022-11-24','monday')
返回类型:
输出结果:2022-11-28
select next_day('2022-11-24 10','monday')
返回类型:
输出结果:2022-11-28
14. 获取两个时间天数的差值
select datediff('2022-11-24','2022-11-20 10')
返回类型:int
输出结果:4
15. 获取当年/当月第一天
select trunc('2022-11-20','mm')
返回类型:
输出结果:null
select trunc('2022-11-20','MM')
返回类型:
输出结果:2022-11-01
select trunc('2022-11-20','YY')
返回类型:
输出结果:2022-01-01
16. 获取本周第一天或最后一天或上周第一天
select date_sub(next_day('2022-11-24','monday'),7)
返回类型:
输出结果:2022-11-21
select date_sub(next_day('2022-11-24','monday'),1)
返回类型:
输出结果:2022-11-27
select date_sub(next_day('2022-11-24','monday'),7*2)
返回类型:
输出结果:2022-11-14
17. 提取时间中的年/季度/月/日/时/分/秒
select extract(year from '2015-10-15 10:09:08')
返回类型:int
输出结果:2015
select extract(quarter from '2015-10-15 10:09:08')
返回类型:int
输出结果:4
select extract(month from '2015-10-15 10:09:08')
返回类型:int
输出结果:10
select extract(day from '2015-10-15 10:09:08')
返回类型:int
输出结果:15
select extract(hour from '2015-10-15 10:09:08')
返回类型:int
输出结果:10
select extract(minute from '2015-10-15 10:09:08')
返回类型:int
输出结果:9
select extract(second from '2015-10-15 10:09:08')
18. 转换为特定时区的时间
select from_utc_timestamp('2022-03-09 15:21:34','CST')
返回类型:timestamp
输出结果:2022-03-09 09:21:34.0