snowflake-cloud-data-platform - 插入行时生成时间戳
问题描述
我正在尝试添加一个日期时间列,其目的应该是给出插入行的确切时间。目前,这是在从视图到表的 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 语句的工作原理吗?还有其他方法可以达到我想要的结果吗?
解决方案
这就是current_timestamp
Snowflake 中的工作原理。它需要事务的开始时间,而不是挂钟时间。由于合并以原子方式运行,所有行都获得相同的时间戳(这通常是您想要的)。
在 Postgres 中,有一个timeofday()
函数可以做到这一点,但是我不相信 Snowflake 中有一个等价物。
推荐阅读
- audio - 立体声/单声道未知的ffmpeg音频通道布局
- python - 如何为列中的每个值绘制不同的条形图,其中每个图对应于另一列中的值?
- sql - 新年累计金额从零开始
- javascript - 如何使用 Jquery 在 datetimepicker 中将颜色应用于周末(周六和周日)以及下个月或上个月的日期
- javascript - Nodejs axios http请求循环
- azure-ad-b2c - 提取 JSON 中的特定声明
- python-3.x - 在 python 中使用烧瓶获取 ModuleNotFound 错误
- java - 如何为我的支付网关项目设置数据库?
- python - 如何修复这个简单的 Python 程序?我想我的逻辑错了
- ssis - SSIS:如何逐步将失败文件移动到失败文件夹