VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

UNIX_TIMESTAMP

功能描述

Vastbase G100在MySQL兼容模式下,支持用户通过unix_timestamp函数获取时间戳。函数的调用有以下两种情况:

  • unix_timestamp()不带date参数调用,返回值为一个unix时间戳,代表的是自'1970-01-01 00:00:00'UTC以来的秒数。
  • unix_timestamp()使用date参数调用,返回值为自'1970-01-01 00:00:00'UTC以来的秒数。

语法格式

unix_timestamp([date])

参数说明

date

表示时间,为timestamptz字符串。

注意事项

  • 该功能仅在数据库兼容模式为MySQL时能够使用(即创建DB时DBCOMPATIBILITY='B'),在其他数据库兼容模式下不能使用该特性。
  • 该功能仅在Vastbase G100 V2.2 Build 10(Patch No.9)及以后版本支持。

示例

前置步骤:创建并切换至兼容模式为MySQL的数据库db_mysql。

CREATE DATABASE db_mysql dbcompatibility='B';    
\c db_mysql

示例1:在系统表中查询函数信息。

\x    --列式展示查询结果
select * from pg_proc where proname='unix_timestamp';

查询结果为:

-[ RECORD 1 ]-------+---------------------------
proname             | unix_timestamp
pronamespace        | 11
proowner            | 10
prolang             | 12
procost             | 1
prorows             | 0
provariadic         | 0
protransform        | -
proisagg            | f
proiswindow         | f
prosecdef           | f
proleakproof        | f
proisstrict         | t
proretset           | f
provolatile         | v
pronargs            | 0
pronargdefaults     | 0
prorettype          | 23
proargtypes         |
proallargtypes      |
proargmodes         |
proargnames         |
proargdefaults      |
prosrc              | unix_timestamp
probin              |
proconfig           |
proacl              |
prodefaultargpos    |
fencedmode          | f
proshippable        |
propackage          | f
prokind             | f
proargsrc           |
propackageid        | 0
proisprivate        | f
prosrcoffset        | 0
proargtypesext      |
prodefaultargposext |
allargtypes         |
allargtypesext      |
protypeoid          | 0
protypekind         |
isfinal             | f
-[ RECORD 2 ]-------+---------------------------
proname             | unix_timestamp
pronamespace        | 11
proowner            | 10
prolang             | 12
procost             | 1
prorows             | 0
provariadic         | 0
protransform        | -
proisagg            | f
proiswindow         | f
prosecdef           | f
proleakproof        | f
proisstrict         | t
proretset           | f
provolatile         | i
pronargs            | 1
pronargdefaults     | 0
prorettype          | 23
proargtypes         | 1184
proallargtypes      |
proargmodes         |
proargnames         |
proargdefaults      |
prosrc              | unix_timestamp_timestamptz
probin              |
proconfig           |
proacl              |
prodefaultargpos    |
fencedmode          | f
proshippable        |
propackage          | f
prokind             | f
proargsrc           |
propackageid        | 0
proisprivate        | f
prosrcoffset        | 0
proargtypesext      |
prodefaultargposext |
allargtypes         | 1184
allargtypesext      |
protypeoid          | 0
protypekind         |
isfinal             | f

示例2:将unix_timestamp()值作为字段默认值。

1、创建测试表。

CREATE TABLE t_unix_timestamp(c1 int4 default unix_timestamp('2023-02-03 10:00:00'));

2、向测试表中插入default值,并查询表记录。

insert into t_unix_timestamp values(default);
select * from t_unix_timestamp;

查询结果为:

     c1
------------
 1675418400
(1 row)