那些年用到的PostgreSQL函数

这里总结的是平常开发中用过的函数   将会持续更新...

// 四舍五入函数
round(变量,保留几位小数)
// 截取字符串
substring('zbcd',1,3)
// 获取两个图形相交的面积
ST_Intersection(图形1,图形2)
// 按照图形编码 转化图形
ST_Transform(图形,2346)
// 距离计算
st_length(图形)
// 判断投影编码
st_srid(图形)
// 将日期按照一定格式 转成字符串
to_char(日期, 'yyyy-mm-dd')
// 将字符串按照一定格式转成日期
to_date(日期字符串,'yyyy-mm-dd')
// 获取秒值
date_part('epoch','2022-01-11 13:00:00'::timestamp - '2022-01-11 12:00:00'::timestamp)
// 获取两个日期中间相差的天数
date_part('day','2021-11-11'::timestamp - '2021-11-10'::timestamp)
// 获取两个日期中间的日期
generate_series('2021-10-15'::date ,'2021-10-31'::date,interval '1 day')
// 拼接字符串
string_agg(需要拼接的变量,',')
// 将类型转换
cast(1 as varchar)
// 将列转行
array_agg(变量)
// 将行转行
unnest(变量)
// 根据某个符号分割
regexp_split_to_table('1,2,3',',')

// 按照某个字段进行分组排序
row_number () over (partition by 分组字段 order by 排序字段)
// 判断图形是否自相交
ST_IsValid(图形)
// 获取具体相交的点
ST_IsValidReason(图形字段)
// 该函数尝试创建给定无效几何的有效表示形式而不会丢失任何输入顶点
ST_MakeValid()

// 获取某个月最后一天
date_trunc('month', now()::date) + interval '1 month' - interval '1 day'
// 获取某个月的第一天
date_trunc('month',current_date)
// 获取当前毫秒值
select floor(extract(epoch from now())) * 1000
-- 将毫秒值转成时间
select to_char(to_timestamp(1649717867934/1000) AT TIME ZONE 'UTC-8','yyyy-MM-dd HH24:MI:SS')
-- 清空一张表
truncate table 表名
-- 查验毫秒值转换
select to_char(to_timestamp(floor(extract(epoch from clock_timestamp())) * 1000/1000) AT TIME ZONE 'UTC-8','yyyy-MM-dd HH24:MI:SS'),to_char(clock_timestamp(),'yyyy-MM-dd HH24:MI:SS')
-- 如果为空 则返回默认值
coalesce(字段,默认值)
-- 实时时间
select clock_timestamp()

-- 图形转geojson
select ST_AsGeoJSON(geom) 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值