我正在写一个查询,您在表格中有票。first_use_on 列表示第一次使用的 TIMESTAMP。first_use_on 默认为 NULL,然后仅在第一次使用时更新。我的查询工作正常,但现在我需要在查询之外知道运行的查询是否触发了 first_use_on,所以我考虑添加 RETURNING first_use_on = NOW() AS is_first_usage
。我可以 100% 确定返回时比较的 NOW() 总是与UPDATE
零件中使用的相同吗?在某些情况下它们会有所不同吗?
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;