Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Postgres:NOW()在查询的更多位置使用是否保证始终相同?_Sql_Postgresql_Date_Current Time - Fatal编程技术网

Sql Postgres:NOW()在查询的更多位置使用是否保证始终相同?

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_use_on表示第一次使用它的时间戳。默认情况下,first_use_on为空,然后仅在第一次使用时更新。我的查询工作正常,但现在我需要在查询外部知道运行的查询是否首先触发了first\u use\u on,因此我考虑添加
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()在查询的更多位置使用是否保证始终相同

对。它返回当前事务开始时的时间戳,如下所示:

由于这些函数返回当前事务的开始时间,因此它们的值在事务期间不会更改。这被认为是一个特性:其目的是允许单个事务具有“当前”时间的一致概念,以便同一事务中的多个修改具有相同的时间戳