CURRENT TIMESTAMP 专用寄存器

CURRENT TIMESTAMP (或 CURRENT_TIMESTAMP) 专用寄存器指定基于在应用程序服务器上执行 SQL 语句时的时间时钟读数的时间戳记。

如果在单个 SQL 语句中多次使用此专用寄存器,或者在单个语句中与 CURRENT DATE 或 CURRENT TIME 配合使用,那么所有值都基于单个时钟读数。 可以单独的 CURRENT TIMESTAMP 专用寄存器请求返回相同的值; 如果需要唯一值,请考虑使用 GENERATE_UNIQUE 函数,序列或标识列。

如果需要具有特定精度的时间戳记,那么可以将专用寄存器引用为 CURRENT TIMESTAMP (integer) ,其中 integer 的范围为 0 到 12。 缺省精度为 6。 时钟读数的精度因平台而异,结果值用零填充,其中检索到的时钟读数的精度小于请求的精度。

例如:
  • 当前时间戳记 ()
    • Windows 中的输出: 2015-03-23-09.41.24.684000
    • Linux中的输出: 2015-03-23-09.41.24.684842
    • UNIX 中的输出: 2015-03-23-09.41.24.684842
  • 当前时间戳记 (12)
    • Windows 中的输出: 2015-03-23-09.41.24.684000000000
    • Linux中的输出: 2015-03-23-09.41.24.684842000000
    • UNIX 中的输出: 2015-03-23-09.41.24.684842000000
  • 当前时间戳记 (6)
    • Windows 中的输出: 2015-03-23-09.41.24.684000
    • Linux中的输出: 2015-03-23-09.41.24.684842
    • UNIX 中的输出: 2015-03-23-09.41.24.684842
  • 当前时间戳记 (3)
    • Windows 中的输出: 2015-03-23-09.41.24.684
    • Linux中的输出: 2015-03-23-09.41.24.684
    • UNIX 中的输出: 2015-03-23-09.41.24.684

在例程内的 SQL 语句中使用时,不会从调用语句继承 CURRENT TIMESTAMP。

在联合系统中,可以在用于数据源的查询中使用 CURRENT TIMESTAMP。 处理查询时,将从联合服务器上的 CURRENT TIMESTAMP 寄存器获取返回的时间戳记,而不是从数据源获取。

在启用了事务工作负载均衡的 Db2® pureScale® 实例上,如果在不同的 成员上执行这些事务,那么 CURRENT TIMESTAMP 专用寄存器不一定会返回跨事务的递增值。

还可以将 SYSDATE 指定为 CURRENT TIMESTAMP (0) 的同义词。

LOCALTIMESTAMP 还可以指定为 CURRENT TIMESTAMP 的同义词。

LOCALTIMESTAMP (integer) 也可以指定为 CURRENT TIMESTAMP (integer) 的同义词。

示例: 在 IN_TRAY 表中插入一行。 RECEIVED 列的值应该是指示插入行的时间戳记。 其他三列的值来自主变量 SRC (char (8)) , SUB (char (64)) 和 TXT (VARCHAR (200))。
   INSERT INTO IN_TRAY
     VALUES (CURRENT TIMESTAMP, :SRC, :SUB, :TXT)