Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

292
Visualizações
Postgres: ¿se usa NOW() en más lugares de la consulta para garantizar que siempre sea igual?

Estaba escribiendo una consulta donde tienes boletos en una mesa. La columna first_use_on representa el TIMESTAMP de la primera vez que se usó. first_use_on es por defecto NULL y luego se actualiza una vez que se usa solo por primera vez. Mi consulta funciona bien, pero ahora tengo la necesidad de saber fuera de la consulta si la consulta ejecutada activó first_use_on, así que pensé en agregar first_use_on = NOW() AS is_first_usage en el RETORNO. ¿Puedo estar 100% seguro de que el NOW() comparado en la devolución es siempre el mismo que el utilizado en la parte UPDATE ? ¿Podría haber algunos casos en los que difieran?

 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;
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Sí. Como se especifica en la documentación por now() :

Dado que estas funciones devuelven la hora de inicio de la transacción actual, sus valores no cambian durante la transacción. Esto se considera una característica: la intención es permitir que una sola transacción tenga una noción consistente de la hora "actual", de modo que múltiples modificaciones dentro de la misma transacción lleven la misma marca de tiempo.

El inicio de la transacción es constante para todo el extracto.

over 4 years ago · Santiago Trujillo Relatório

0

Postgres: ¿se usa NOW() en más lugares de la consulta para garantizar que siempre sea igual?

Sí. Devuelve la marca de tiempo al comienzo de la transacción actual, como se explica en la documentación :

Dado que estas funciones devuelven la hora de inicio de la transacción actual, sus valores no cambian durante la transacción. Esto se considera una característica: la intención es permitir que una sola transacción tenga una noción consistente de la hora "actual", de modo que múltiples modificaciones dentro de la misma transacción lleven la misma marca de tiempo.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda