current_time
是一个系统函数,返回当前事务开始时的时间
。
current_time
添加于 PostgreSQL 6.3。
用法
current_time → time with time zone
尽管名称如此,current_time
返回的是当前事务开始的时间,而不是函数实际执行的时间(这可以通过clock_timestamp()
获取)。
此函数的变体 current_time()
用于以指定的精度检索事务时间。
current_time (integer
) →timestamp with time zone
请注意,current_time
不能作为 current_time()
调用。
更改历史记录
- PostgreSQL 7.2
- 返回的
时间
的精度可以指定(提交 bd97e4e7)
- 返回的
- PostgreSQL 6.2
- 添加(提交 f10b6392)
示例
current_time
的基本执行示例
postgres=# SELECT current_time; current_time -------------------- 20:22:38.562496+01 (1 row)
current_time
将始终报告与transaction_timestamp()
相同的时间,并且(如果在隐式事务中执行)与statement_timestamp()
相同的时间。
postgres=# SELECT current_time, transaction_timestamp(), statement_timestamp(), clock_timestamp()\gx -[ RECORD 1 ]---------+------------------------------ current_time | 20:26:13.979644+01 transaction_timestamp | 2021-06-17 20:26:13.979644+01 statement_timestamp | 2021-06-17 20:26:13.979644+01 clock_timestamp | 2021-06-17 20:26:13.980394+01
可以可选地指定精度(亚秒数字)。
postgres=# SELECT current_time(3); current_time ----------------- 20:30:13.684+01 (1 row)
指定的精度必须在0
和6
之间;更大的值将减少到6
。
postgres=# SELECT current_time(99); WARNING: TIME(99) WITH TIME ZONE precision reduced to maximum allowed, 6 current_time -------------------- 20:31:02.153981+01 (1 row)
变体 current_time()
无效。
postgres=# SELECT current_time(); ERROR: syntax error at or near ")" LINE 1: SELECT current_time(); ^