postgres时间计算函数date_part
1、计量两个时间相隔天数
select date_part('day',endDate-startDate);
实例:
select date_part('day',to_date('20220301','yyyyMMdd')::TIMESTAMP-to_date('20220201','yyyyMMdd')::TIMESTAMP);
输出:28
2、计量两个时间相隔月份
获取到当前月份,实际获取到时间的月份,通过月份相减得到当年的月份差,再通过年份差*12得到所有月份差。
select date_part('month',date_1);
实例:
select date_part('month',to_date('20231201','yyyyMMdd')::TIMESTAMP);
输出:12
两个时间相差月份:
select
12*(date_part('year',to_date('20241201','yyyyMMdd')::TIMESTAMP)-date_part('year',to_date('20230201','yyyyMMdd')::TIMESTAMP))
+(date_part('month',to_date('20241201','yyyyMMdd')::TIMESTAMP)-date_part('month',to_date('20230201','yyyyMMdd')::TIMESTAMP));
输出:22
3、计量两个时间年份差
年份相减:
select date_part('year',endTime)-date_part('year',startTime)
示例:
select date_part('year',to_date('20241201','yyyyMMdd')::TIMESTAMP)-date_part('year',to_date('20230201','yyyyMMdd')::TIMESTAMP)
输出:1