Impala时间加减date_add

在时间加减上,有很多函数可以使用,大部分sql中通用的是date_add,而且date_add比较灵活,可以自由设置加减类型,如年、月、日、时、分、秒等等

前面先示例date_add的用法,在示例其他时间加减的函数

-- 获取去年
select date_add(now(),interval -1 years)
-- 输出:2021-10-11 15:23:40.521

-- 获取下个月
select date_add(now(),interval 1 months)
-- 输出:2022-11-11 15:23:40.521

-- 获取明天
select date_add(now(),interval 1 days)
-- 输出:2022-10-12 15:23:40.521

-- 获取下一个小时
select date_add(now(),interval 1 hours)
-- 输出:2022-10-11 16:23:40.521

-- 获取下一分钟
select date_add(now(),interval 1 minutes)
-- 输出:2022-10-11 15:24:40.521

Impala中还自带了很多时间检查函数,这里逐个示例,不过函数太多,从记忆方便性上,当然是推荐大家记住date_add一个就可以了哈;

从使用方便性上,如果大家的时间数据经常是string类型,可以尝试记住一下函数,因为对string时间进行date_add时,是需要先进行to_timestamp转为时间格式的;而下面的函数,都是可以直接操作string时间的,不用转换格式

而记住的方式很简单:时间精度 + 's' + '_' + 加减类型 

示例:hours_add('2022-10-11 15:27:15',1)

        months_sub('2022-10-11 15:27:15',1)

函数说明:

序号语法类型/方法名称输出类型使用说明
1years_add(time, number )time增加指定年数
2years_sub(time, number )time减少指定年数
3months_add(time, number )time增加指定月数
4months_sub(time, number )time减少指定月数
5add_months(time, number )time增加指定月数
6weeks_add(time, number )time增加指定周数
7weeks_sub(time, number )time减少指定周数
8days_add(time, number )time增加指定天数
9days_sub(time, number )time减少指定天数
10date_add(time, number )time增加指定天数
11date_sub(time, number )time减少指定天数
12adddate(time,number )time增加指定天数
13subdate(time,number )time减少指定天数
14hours_add(time, number )time增加指定小时
15hours_sub(time, number )time减少指定小时
16minutes_add(time, number )time增加指定分钟
17minutes_sub(time, number )time减少指定分钟
18seconds_add(time, number )time增加指定秒数
19seconds_sub(time, number )time减少指定秒数
20milliseconds_add(time, number )time增加指定毫秒数
21milliseconds_sub(time, number )time减少指定毫秒数
22microseconds_add(time, number )time增加指定微秒数
23microseconds_sub(time, number )time减少指定微秒数
24nanoseconds_add(time, number )time增加指定纳秒数
25nanoseconds_sub(time, number )time减少指定纳秒数
26date_add(time, interval N months)time使用参数计算日期增量值(增加)
27date_sub(time, interval N hours)time使用参数计算日期增量值(减少)

示例内容:

序号SQL语句输出
1years_add(now(),1)2023-10-11 15:27:16.538
2years_sub(now(),1)2021-10-11 15:27:16.538
3months_add(now(),1)2022-11-11 15:27:16.538
4months_sub(now(),1)2022-09-11 15:27:16.538
5add_months(now(),1)

2022-11-11 15:27:16.538

6weeks_add(now(), 1)2022-10-18 15:27:16.538
7weeks_sub(now(), 1)2022-10-04 15:27:16.538
8days_add(now(),1)2022-10-12 15:27:16.538
9days_sub(now(), 1)2022-10-10 15:27:16.538
10date_add(now(), 1)2022-10-12 15:27:16.538
11date_sub(now(), 1)2022-10-10 15:27:16.538
12adddate(now(),1)2022-10-12 15:27:16.538
13subdate(now(),1)2022-10-10 15:27:16.538
14hours_add(now(),1)2022-10-10 16:27:16.538
15hours_sub(now(),1)2022-10-10 14:27:16.538
16minutes_add(now(),1)2022-10-10 15:28:16.538
17minutes_sub(now(),1)2022-10-10 15:26:16.538
18seconds_add(now(),1)2022-10-11 15:27:17.538
19seconds_sub(now(),1)2022-10-11 15:27:15.538
20milliseconds_add(now(),1000)2022-10-11 15:27:17.538
21milliseconds_sub(now(),1000)2022-10-11 15:27:15.538
22microseconds_add(now(),1000)2022-10-11 15:27:16.539
23microseconds_sub(now(),1000)2022-10-11 15:27:16.537
24nanoseconds_add(now(),1000)2022-10-11 15:27:16.538002
25nanoseconds_sub(now(),1000)2022-10-11 15:27:16.538000
26date_add(now(),interval 2 months)2022-12-11 15:27:16.538
27date_sub(now(),interval 2 hours)2022-10-11 13:27:16.538

以上就是相关时间加减函数的用法介绍和示例,希望对大家有帮助

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值