【Postgresql 基础】查询昨天、本周、本月、上月、本年统计数据

1、获取当前系统时间
select now();
select current_timestamp;
结果:2020-11-04 16:09:53.247825+08
# now()/current_timestamp展示当前系统的时间,日期格式
2、获取当前日期或时间
select current_date;
结果:2020-11-04
select current_time;
结果:16:14:08.501182+08
3、查询昨天的数据
select 
DISTINCT count(id)
from 
	tablexx
where  coalesce(l.join_date,l.sys_createdate) >= current_date - 1;
# 这里的coalesce函数,语法:coalesce(expr1,expr2,expr3...)
# 如果第一个字段存在就用第一个进行表达式判断;
# 如果第一个不存在为null则用第二个进行表达式判断;
# 如果都没有null则返回null
4、查询本周的数据
# 查询某个时间的周一
SELECT ( DATE '2020-10-23' - INTERVAL '1 day' - ( EXTRACT ( dow FROM ( DATE'2020-10-23' - INTERVAL '1 day' ) ) - 1 || ' day' ) :: INTERVAL ) :: DATE;
	# 减1 是因为得到的是以周一是星期的开始
# 查询本周的数据
SELECT( DATE ( now() ) - ( EXTRACT ( dow FROM DATE ( now() ) ) - 1 || ' day' ) :: INTERVAL ) :: DATE startasy,
( DATE ( now() ) - ( EXTRACT ( dow FROM DATE ( now() ) ) - 1 || ' day' ) :: INTERVAL ) :: DATE + 6 endday
	from table d LIMIT 5;
# 本周周末
SELECT to_char(CURRENT_DATE +cast(-1*(TO_NUMBER(to_char(CURRENT_DATE,'D'),'99')-2)+6 ||' days' as interval),'yyyy-mm-dd');
5、获取本月、上月数据
# 本月,方式一
select to_char((SELECT now() as timestamp),'mm');
# 本月,方式二
select * from table where time >= date_trunc( 'month', now() ); 
# 获取上月
select to_char((select  now() - interval '1 month'),'mm');
6、获取本年数据
# 获取今年
select to_char((SELECT now() as timestamp),'yyyy')
# 获取去年
select to_char((select  now() - interval '1 years'),'yyyy')
  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值