一、前言
在日常开发中,我们经常会使用到日期函数,对日期或时间戳进行计算,以下简单介绍梧桐数据库与Gbase数据库日期函数的使用。
二、日期加减
1、GBase数据库
select cast('2024-10-30'as date) ± interval '1' day; --日期加减一天
select cast('2024-10-30'as date) ± interval '1' year; --日期加减一年
select cast('2024-10-30'as date) ± interval '1' month; --日期加减一月
select addDate(cast('2024-10-30'as date), interval '1' day/month/year); --日期加一天/月/年
select subDate(cast('2024-10-30'as date), interval '1' day/month/year); --日期减一天/月/年
select timestampdiff(month, cast('2024-01-01' as date), cast('2024-10-30'as date)); --计算两个日期之间月份差
select add_months(cast('2024-01-01' as date), 10); --指定日期上加月数
2、梧桐数据库
select date'2024-10-30' ± 1 ; --日期加减一天
select date'2024-10-30' ± interval '1 day'; --日期加减一天
select date'2024-10-30' ± interval '1 year'; --日期加减一年
select date'2024-10-30' ± interval '1 month'; --日期加减一月
select age(date'2023-10-30' , date'2024-10-30') --计算两个日期的差值
三、时间戳加减
1、GBase数据库
select current_time; --获取当前时间
select current_time ± interval '1' day; --日期加减一天
select current_time ± interval '1' year; --日期加减一年
select current_time ± interval '1' month; --日期加减一月
select current_time ± interval '1' hour; --当前时间加减一小时
select current_time ± interval '1' minute; --当前时间加减一分钟
select current_time ± interval '1' second; --当前时间加减一秒
2、梧桐数据库
elect now(); --获取当前时间
select now() ± interval '1 day'; --时间加减一天
select now() ± interval '1 year'; --时间加减一年
select now() ± interval '1 month'; --时间加减一月
select now() ± interval '1 hour'; --时间加减一小时
select now() ± interval '1 minute'; --时间加减一分钟
select now() ± interval '1 second'; --时间加减一秒
select extract(epoch from (end_time - start_time)) ; --计算时间戳相差秒数
四、其他日期函数
- 时间戳转换
--GBase数据库:
select from_unixtime('2024-10-30 15:29:24')
--梧桐数据库:
select to_timestamp('2024-10-30 15:29:24')
- 时间截取
--梧桐数据库
select extract(year from now()); -- 获取年
select extract(month from now()); -- 获取月
select extract(day from now()); -- 获取日
--Gbase数据库
select date_part('year', current_time) ; --获取年
select date_part('month', current_time) ; -- 获取月
select date_part('day', current_time) ; -- 获取日
四、总结
日期函数对于我们日常开发很重要,时常会使用到。梧桐数据库与GBase数据库都有丰富的日期函数,为我们的开发提供了强大的支持。两个库的日期函数名上有所不同,但其实现功能上基本相同。