Postgre SQL   发布时间:2022-05-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了postgresql 时区与时间函数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_607_0@--把时间戳转成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 时区与时间函数全部内容,希望文章能够帮你解决postgresql 时区与时间函数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: