【发布时间】:2020-07-22 08:51:16
【问题描述】:
为什么在横向连接中包装now() 函数时可以看到相同的时间戳。
我制定了一个代码示例以举例说明:
SELECT *
FROM generate_series(1, 10000)
LEFT JOIN LATERAL (
SELECT now() AS now
) sub ON TRUE
产生相同的时间戳,例如(修剪):
1, 2020-07-22 08:48:55.038668
2, 2020-07-22 08:48:55.038668
3, 2020-07-22 08:48:55.038668
4, 2020-07-22 08:48:55.038668
我希望每一行都包含一个新的时间戳(按递增顺序),因为 LATERAL 是逐行执行的。
【问题讨论】:
-
因为它们都是同时从系统中获取的。
-
如果您需要在语句执行期间更改时间戳,您可以使用 clock_timestamp() 而不是 now() 来获取它,但如果它不是每行都更改,请不要感到惊讶。请参阅下面提到的相同文档。
标签: sql postgresql current-time