一、声明
CURRENT_GLOBAL_TIMESTAMP()
二、说明
CURRENT_GLOBAL_TIMESTAMP 函数返回数据库服务器的全局事务时间戳。在分布式数据库环境中,该函数确保所有节点返回统一的时间值,避免因节点时间不同步导致的时间不一致问题。
该函数与 NOW()函数的主要区别在于:
·NOW()返回当前连接的本地时间,即 SQL 节点的机器时间。
·CURRENT_GLOBAL_TIMESTAMP()返回全局事务时间戳,是集群授时的 GTS 混合逻辑时钟。混合逻辑时钟右移24位(>>24)得到 Unix timestamp,可以进一步得到 GTS 对应的物理时间。
三、示例
·基本用法
tdsql> SELECT CURRENT_GLOBAL_TIMESTAMP();+—————————-+| CURRENT_GLOBAL_TIMESTAMP() |+—————————-+| 29647834336722979 |+—————————-+1 row in set (0.01 sec)
·在数据插入中使用
INSERT INTO transaction_log (id, amount, create_time)VALUES (1001, 500.00, CURRENT_GLOBAL_TIMESTAMP());
·格式化输出
tdsql> SELECT FROM_UNIXTIME(CURRENT_GLOBAL_TIMESTAMP() >> 24) AS formatted_time;+———————+| formatted_time |+———————+| 2025-12-31 10:37:42 |+———————+1 row in set (0.00 sec)