postgresql 时区与时间函数

rudygao

2016-02-03

1951浏览量

简介:

--把时间戳转成epoch值

postgres=# select extract(epoch from now());

date_part

------------------

1447898857.74524

(1 row)

--把epoch 值转换回时

--把时间戳转成epoch值

postgres=# select extract(epoch from now());

date_part

------------------

1447898857.74524

(1 row)

--把epoch 值转换回时间戳

postgres=# SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 1447898857.74524 * INTERVAL '1 second';

?column?

------------------------------

2015-11-19 10:07:37.74524+08

postgres=# SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 1447898857.74524 * INTERVAL '1 second';

?column?

------------------------------

2015-11-19 10:07:37.74524+08

--查看当前的时间戳

postgres=# select clock_timestamp(),current_timestamp,localtimestamp;

clock_timestamp | now | timestamp

-------------------------------+-------------------------------+----------------------------

2016-02-02 17:54:15.547194+08 | 2016-02-02 17:54:15.546956+08 | 2016-02-02 17:54:15.546956

--时间加减

postgres=# select date '2016-02-02 10:00:00'+ interval '10 minutes';

?column?

---------------------

2016-02-02 00:10:00

--直接用sql生成随机日期时间

select '2015-5-1'::date + trunc(random()*100)::integer +' 00:22:22'::time + (trunc(random()*3600*24)||' second')::interval;

--不同时区之间的转换

postgres=# select '2016-02-03 09:07:30.816885+08' at time zone 'pst';

timezone

----------------------------

2016-02-02 17:07:30.816885

(1 row)

postgres=# select '2016-02-03 09:07:30.816885+08' at time zone 'cct';

timezone

----------------------------

2016-02-03 09:07:30.816885

(1 row)

postgres=# SELECT TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40-05' AT TIME ZONE 'cct';

timezone

---------------------

2001-02-17 09:38:40

--查看系统支持的时区

select * from pg_timezone_names ;

--时区设置参数

timezone = 'PRC'

--修改时区的方法

1. 全局参数

postgresql.conf

timezone='UTC'

2. 数据库级配置

alter database dbname set timezone='UTC';

pipeline=# select * from pg_db_role_setting ;

setdatabase | setrole | setconfig

-------------+---------+--------------------------------------

14930 | 0 | {TimeZone=UTC}

3. 用户级配置

alter role rolname set timezone='UTC';

或者

alter role all set timezone='UTC';

pipeline=# select * from pg_db_role_setting ;

setdatabase | setrole | setconfig

-------------+---------+--------------------------------------

14930 | 0 | {TimeZone=UTC}

0 | 0 | {TimeZone=UTC}

--创建随机日期时间函数

CREATE OR REPLACE FUNCTION rand_date_time(start_date date, end_date date) RETURNS TIMESTAMP AS

$BODY$

DECLARE

interval_days integer;

random_seconds integer;

random_dates integer;

random_date date;

random_time time;

BEGIN

interval_days := end_date - start_date;

random_dates:= trunc(random()*interval_days);

random_date := start_date + random_dates;

random_seconds:= trunc(random()*3600*24);

random_time:=' 00:00:00'::time+(random_seconds || ' second')::INTERVAL;

RETURN random_date +random_time;

END;

$BODY$

LANGUAGE plpgsql;

--生成指定时间内的随机时间

SELECT rand_date_time('2000-01-01', '2013-12-31');

--休眠1.5秒后执行,单位秒

SELECT clock_timestamp(),pg_sleep(1.5),clock_timestamp();

--休眠5分钟,单位interval

SELECT clock_timestamp(),pg_sleep_for('5 minutes'),clock_timestamp();

--到指定时间执行,注意这些休眠时间不是完全精确的

SELECT clock_timestamp(),pg_sleep_until('today 10:00'),clock_timestamp();

关系型数据库

PostgreSQL

数据库

SQL

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

pg数据库生成随机时间_postgresql 时区与时间函数-阿里云开发者社区相关推荐

  1. dms mysql定义变量_数据管理DMS:自建MySQL数据库 全量SQL诊断功能发布啦!-阿里云开发者社区...

    MySQL的用户都面临都一个难题,异常或者故障问题难定位,很多时候都靠"猜". 如果比较幸运,异常正在发生,我们还可以获取到会话.引擎状态等信息: 如果没有异常现场,要找到根因,除 ...

  2. jfinal mysql读写分离_在JFinal中对数据库读写分离的实现:报错 -问答-阿里云开发者社区-阿里云...

    频繁使用 use(configName) 没有任何性能问题,仅仅是为变量赋一个 string 值而已,完全可以忽略######@JFinal######我现在也使用,读用的是视图model,写操作使用 ...

  3. mysql数据库增删改查关键字_Mysql数据库,增删改查笔记(非常重要)-阿里云开发者社区...

    新增数据: INSERT 语法: INSERT [INTO] [列名] VALUES; INSETR INTO 表名(列名1,列名2) VALUES(值1,值2); 如果INSETR语句中不写列名,则 ...

  4. 如何看pg数据库版本号_pg版本是什么-和pg版本相关的问题-阿里云开发者社区

    关于 pg版本的搜索结果 问题 DMS for PG 的版本 还停留在 1.7.0,发布日期是 2018-1-10,一年多了没有发布新版本了,DMS for PG 有没有更新计划? DMS for P ...

  5. ro模式数据库mysql_ro数据库-和ro数据库相关的内容-阿里云开发者社区

    Influxdb的部署以及运行cadvisor 环境为CentOS7.4 1.安装influxdb1.7 mkdir -p /home/influxdb/ cd /home/influxdb wget ...

  6. greenplum 数据库如何增加列_Greenplum行存与列存的选择以及转换方法-阿里云开发者社区...

    背景 数据在数据库中的存储形式多种多样,比较常见的如 1. PostgreSQL的堆表,以行的形式存储,(当变成字段压缩后的长度超过数据块的四分之一时,会以TOAST的形式存储到TOAST表). 2. ...

  7. 物联网 mysql数据库优化_MySQL数据库优化大全方法汇总-阿里云开发者社区

    随着数据和负载增加,MySQL数据库会日渐缓慢,性能越来越差,用户体验也随之变差,所以数据库性能优化十分紧迫,云吞铺子分享MySQL数据库优化大全: MySQL数据库优化 云吞铺子先模拟一下数据库访问 ...

  8. apsaradb for mysql_云数据库·ApsaraDB 产品7月刊-阿里云开发者社区

    [重点关注]RDS for SQL Server2012 开启公测 1.第一款单机版产品 :价格比2008 R2降低近一半,这对于看重RDS产品功能,而对高可用要求稍低的用户来说是一个性价比很高的选择 ...

  9. mysql 数据库军规_MySQL 数据库开发的33 条军规-阿里云开发者社区

    写在前面的话: 总是在灾难发生后,才想起容灾的重要性: 总是在吃过亏后,才记得曾经有人提醒过. (一)核心军规 (1)不在数据库做运算:cpu计算务必移至业务层 (2)控制单表数据量:单表记录控制在1 ...

最新文章

  1. 【源码解读】Vue与ASP.NET Core WebAPI的集成
  2. C++中size_t的学习
  3. 重磅!ICCV 2019 COCO + Mapillary 联合识别挑战赛开启!
  4. Hyperreal number
  5. React-Native Fetch使用Promise封装(一)
  6. Acer EC-471G BIOS升级注意事项
  7. 大脑是如何塑造你的感觉?
  8. 台式主机与显示器相连用HDMI还是VGA
  9. Golang调用mssql存储过程
  10. 聊一聊ThreadLocal内存泄漏的问题
  11. 【Word】插入题注图1-1,并在文章中交叉引用
  12. jdk1.6,1.7,1.8解压版无需安装(64位)
  13. 0603-0605读书报告
  14. QQ2009 Preview 下载 图片大赏+简单评测
  15. PHP验证码不能显示的问题
  16. UDP包的大小与MTU
  17. try{}catch{}的含义
  18. 大专拿不到计算机考证能毕业吗
  19. SIFT特征提取和匹配
  20. WdgM01- AutoSAR Wdg的分层架构及功能安全分析

热门文章

  1. mq系列传感器的程序_消息中间件(一)MQ详解及四大MQ比较
  2. mysql引号问题_MySQL中引号的问题
  3. python数字组合算法_面试宝典_Python.常规算法.0001.在圆圈和框框分别填入1~8数字各一次?...
  4. td不显示边框_FANUC Series 0i Mate-TD系统上电显示SP1241 (S)D/A变换器异常维修,FANUC主板SP1_维修中心...
  5. 的安装配置_JDK安装与配置
  6. redis 亿级查询速度_Redis 性能优化的 13 条军规!史上最全
  7. linux php 编译 pdo,Linux 下 PHP 扩展 PDO 编译安装
  8. java 设置宽度和高度,如何通过设置高度和宽度来使宽度和高度反映ScaleTransform以及如何进行ScaleTransform?...
  9. 开源史上最成功的8个开源产品
  10. Cocos2dx源码记录(1) CCGLProgram