加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

PostgreSQL技巧 如何获取当前日期时间

发布时间:2020-10-18 10:02:16 所属栏目:创业 来源:网络整理
导读:这篇文章首要先容了PostgreSQL 怎样获取当前日期时刻及留意事项,文中通过示例代码先容的很是具体,对各人的进修可能事变具有必然的参考进修代价,必要的伴侣们

postgres=# SELECT timeofday() FROM generate_series(1,10);
       timeofday      
-------------------------------------
 Sat Sep 28 13:23:05.068541 2019 CST
 Sat Sep 28 13:23:05.068570 2019 CST
 Sat Sep 28 13:23:05.068577 2019 CST
 Sat Sep 28 13:23:05.068584 2019 CST
 Sat Sep 28 13:23:05.068591 2019 CST
 Sat Sep 28 13:23:05.068598 2019 CST
 Sat Sep 28 13:23:05.068605 2019 CST
 Sat Sep 28 13:23:05.068612 2019 CST
 Sat Sep 28 13:23:05.068619 2019 CST
 Sat Sep 28 13:23:05.068626 2019 CST
(10 rows)

now()

now() 是 PostgreSQL 中与 transaction_timestamp() 等价的一个传统函数,统一个事宜中的功效不会改变:

postgres=# BEGIN;
BEGIN
postgres=# SELECT now();
       now      
-------------------------------
 2019-09-28 13:27:26.831492+08
(1 row)

postgres=# SELECT pg_sleep(3);
 pg_sleep
----------
(1 row)

postgres=# SELECT now();
       now      
-------------------------------
 2019-09-28 13:27:26.831492+08
(1 row)

postgres=# COMMIT;
COMMIT

其它,全部的日期/时刻数据范例都支持行使字面值'now'指定当前日期和时刻(当前事宜开始时刻)。因此,以下语句结果沟通:

SELECT CURRENT_TIMESTAMP;
SELECT now();
SELECT TIMESTAMP 'now'; -- 不要用于字段的 DEFAULT 值

趁便说一下,PostgreSQL 还提供了其他几个非凡的日期和时刻字面值:

-- SELECT timestamp 'epoch', timestamp 'today', timestamp 'tomorrow', timestamp 'yesterday', TIME 'allballs';
postgres=# SELECT DATE 'epoch', DATE 'today',DATE 'tomorrow', DATE 'yesterday', TIME 'allballs';
  date  |  date  |  date  |  date  |  time 
------------+------------+------------+------------+----------
 1970-01-01 | 2019-09-28 | 2019-09-29 | 2019-09-27 | 00:00:00
(1 row)

以上函数别离返回 UTC 1970 年 1 月 1 日零点、本日半夜、来日诰日半夜、昨天半夜以及 UTC 零点。

耽误执行

以下函数可以用于耽误处事器举办的操纵:

pg_sleep(seconds)
pg_sleep_for(interval)
pg_sleep_until(timestamp with time zone)

pg_sleep 将当前会话的举办停息指定的秒数。seconds 的范例为 double precision,以是支持小数秒。我们在眼前行使了该函数。

pg_sleep_for 执行一个耽误的时距离断,凡是用于指定一个较大的耽误。

pg_sleep_until 可以用于指定一个历程的叫醒时刻。

以下示例别离停息 1.5 秒、5 分钟以及直到来日诰日 3 点:

SELECT pg_sleep(1.5);
SELECT pg_sleep_for('5 minutes');
SELECT pg_sleep_until('tomorrow 03:00');

停息时刻的精度取决于差异平台的实现,凡是可以到达 0.01 秒。耽误结果起码会满意指定的值,但有也许因为其他身分导致更长,譬喻处事器负载过高。尤其对付 pg_sleep_until,不能担保在完全精确的指按时刻叫醒历程,可是也不会提前叫醒。

留意:行使这些耽误函数时,确保当前会话没有锁定过多的资源;不然,其他会话将会一向守候,导致体系机能的降落。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读