【发布时间】:2020-06-22 13:46:26
【问题描述】:
我正在编写一个查询,其中您在表中有门票。 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;
【问题讨论】:
标签: sql postgresql date current-time