声明
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)