【SQL】postgre sql【持续更新】
官方时间参考文档:
https://www.postgresql.org/docs/9.2/functions-datetime.html
1. group by 1,2,3,4 --可不用写详细字段名
2. postgre sql处理时间函数:
to_date(pay_time::text,'YYYY-MM-DD')
to_date(pay_time::text,'YYYY-MM') >>>转换完结果:2019-09-01(如果想取月份信息,默认为当月1号)
ps. ::text 相当于 cast..as text
3. postgre sql处理出生日期:
原字段:1993/9/20,
age函数:age(birthday) as age >>> 27 years 2 mons 18 days
具体年份:extract(year from age(birthday)) >>> 27;相应的year参数可以替换为month, day
4.截断日期函数:
date_trunc('week', register_date) -- 返回每周周一的日期
extract(dow from register_date) -- 返回register_date是周几
5.条件判断函数
hive写法:sum搭配case when
e.g. sum(case when gender=0 then amount else 0 end) as amount
postgresql:sum搭配filter
e.g. sum(amount) filter(where gender=0) as amount
6. postgresql中文字段无需加单引号
7.通过navicat管理postgresql数据表优缺点:
优点:
1)导入数据:导入错误还可以删除
缺点:
1)只有表创建人有修改表主键、添加注释等权限,权限管理不够灵活;
8.自定义查询代码中的日期,不需要每次修改:
set session my.vars.begintime='2020-01-01 00:00:00';
set session my.vars.endtime='2020-12-31 23:59:59';
select *
where date between current_setting('my.vars.begintime')::timestamp and current_setting('my.vars.endtime')::timestamp
group by 1,2
order by 1,2;
9.拼接字符串(解决数字太长excel无法显示的问题):
select ‘A’||date as date
hive可使用concat函数。
10.赋权语句:
grant select on db.table to wang;
浙公网安备 33010602011771号