Sql Postgres:NOW()在查询的更多位置使用是否保证始终相同?
我在写一个查询,你在桌子上有票。列first_use_on表示第一次使用它的时间戳。默认情况下,first_use_on为空,然后仅在第一次使用时更新。我的查询工作正常,但现在我需要在查询外部知道运行的查询是否首先触发了first\u use\u on,因此我考虑添加Sql Postgres:NOW()在查询的更多位置使用是否保证始终相同?,sql,postgresql,date,current-time,Sql,Postgresql,Date,Current Time,我在写一个查询,你在桌子上有票。列first_use_on表示第一次使用它的时间戳。默认情况下,first_use_on为空,然后仅在第一次使用时更新。我的查询工作正常,但现在我需要在查询外部知道运行的查询是否首先触发了first\u use\u on,因此我考虑添加first\u use\u on=now(),就像返回中的\u first\u usage一样。我是否可以100%确定返回中比较的NOW()始终与更新部分中使用的相同?在某些情况下,它们会有所不同吗 UPDATE l_cod
first\u use\u on=now(),就像返回中的\u first\u usage
一样。我是否可以100%确定返回中比较的NOW()始终与更新部分中使用的相同?在某些情况下,它们会有所不同吗
UPDATE
l_codes
SET first_use_on = (
CASE WHEN first_use_on IS NULL THEN
NOW()
ELSE
first_use_on
END )
WHERE
l_code = 'C9TCH' AND id_mostra = 1
RETURNING
first_use_on,
first_use_on = NOW() AS is_first_usage,
NOW() > DATE_TRUNC('day', first_use_on + INTERVAL '1 DAY') AS expired,
DATE_TRUNC('day', first_use_on + INTERVAL '1 DAY') AS expiration_on;
对。按照以下文件的规定: 由于这些函数返回当前事务的开始时间,因此它们的值在事务期间不会更改。这被认为是一个特性:其目的是允许单个事务具有“当前”时间的一致概念,以便同一事务中的多个修改具有相同的时间戳 对于整个语句,事务开始是常量 Postgres:NOW()在查询的更多位置使用是否保证始终相同 对。它返回当前事务开始时的时间戳,如下所示: 由于这些函数返回当前事务的开始时间,因此它们的值在事务期间不会更改。这被认为是一个特性:其目的是允许单个事务具有“当前”时间的一致概念,以便同一事务中的多个修改具有相同的时间戳