psql时间日期计算

-- 获取当前日期
select current_date;
-- 获取当前时间
select current_time;
-- 取年份
select extract(year from now());
-- 取月份
select extract(month from now());
-- 取日期
select extract(day from timestamp '2020-05-12');
-- 查看今天是一年中的第几天
select extract(doy from now());
-- 返回年月日时分
select to_char(current_timestamp, 'YYYYMMDDHH24MI');
-- 返回上个月的年月
select to_char((date_trunc('month', date '2020-05-12') - interval '1 day'),'yyyyMM');
-- 上个月的最后一天
select date_trunc('month', now()) - interval '1 day';
select to_char((date_trunc('month', now()) - interval '1 day'),'yyyy-MM-DD');
select to_char((date_trunc('month', now()) - interval '1 day'),'yyyy-MM-DD 23:59:59');
select to_char((date_trunc('month', now()) - interval '1 day'),'yyyyMM');
-- 上月最后一天
select date_trunc('month', now()) + interval '-1 day';
-- 上个月的第一天
select to_char((date_trunc('month', now()) - interval '1 day'),'yyyy-MM-01');
-- 当前的后一天
select date_trunc('day', now()) + interval '1 day';
-- 当前的前一天 昨天
select date_trunc('day', now()) + interval '-1 day';
-- 当天的日期
select date_trunc('day', now());
-- 本月的最后一天
select (date_trunc('month', now()) + interval '1 month - 1 day')::date;
-- 本月的第一天
select date_trunc('month', now());
select (date_trunc('month', now()))::date;
-- 10分钟后
select now() + '10 min';
-- 三周后
select now() - interval '3 week';
-- 一个月后
select now() + interval '1 month';
-- 上月同期
select now() + interval '-1 month';
select TO_CHAR(NOW() - INTERVAL '1 MONTH','YYYY-MM-DD') as "上月同期";
select TO_CHAR(NOW() - INTERVAL '1 MONTH','YYYY-MM-DD HH24:MI:SS') as "上月同期";
-- 指定日期的上月同期 没有取上月最后一天
select date_trunc('day', date '2020-03-31') + interval '-1 month'; # 2020-02-29
select to_char(date_trunc('day', date '2020-03-31') + interval '-1 month','yyyy-MM-DD');
select TO_CHAR(date_trunc('day', date '2020-03-31') - INTERVAL '1 MONTH','YYYY-MM-DD HH24:MI:SS') as "上月同期";

-- 当前月的天数
select substr(to_char((date_trunc('month', now()::date) + interval '1 month' - interval '1 day')::date,'YYYYMMDD'),7);
-- 指定时间 月的天数
select substr(to_char((date_trunc('month', '2022-04-01'::date) + interval '1 month' - interval '1 day')::date,'YYYYMMDD'),7);

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值