首页 > 解决方案 > 插入行时生成时间戳

问题描述

我正在尝试添加一个日期时间列,其目的应该是给出插入行的确切时间。目前,这是在从视图到表的 MERGE 语句中完成的。问题是合并语句将所有合并集中到相同的日期时间。

我想知道是否有办法将 current_datetime 添加到逐行加载的基础上?如果加载新行需要 0.001 秒,则预期结果可能如下:

ID 加载时间
123 2021-05-24 17:34:21.000
456 2021-05-24 17:34:21.001

我今天遇到的问题是,在同一条语句中合并的所有 LOAD TIME 行都具有相同的 LOAD TIME。这仅仅是 MERGE 语句的工作原理吗?还有其他方法可以达到我想要的结果吗?

标签: snowflake-cloud-data-platform

解决方案


这就是current_timestampSnowflake 中的工作原理。它需要事务的开始时间,而不是挂钟时间。由于合并以原子方式运行,所有行都获得相同的时间戳(这通常是您想要的)。

在 Postgres 中,有一个timeofday()函数可以做到这一点,但是我不相信 Snowflake 中有一个等价物。


推荐阅读