【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;

 

posted @ 2020-12-07 15:11  赶明儿见  阅读(239)  评论(0)    收藏  举报