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

222
Visualizações
Complete la tabla con fecha y causa año y mes (postgresql, javascript)

Tengo esta tabla con una columna de fecha:

fecha hora fol
2022-03-04 16:40 1
2022-04-05 18:20 2
2022-04-06 13:20 3

Necesito extraer el año y el mes que usé, así que usé esta consulta:

 select fecha, extract(month from fecha) = 3 as mes, EXTRACT(YEAR FROM fecha) = 2022 as anio, hora, folio from table;

Yo obtengo:

fecha mes año hora fol
2022-03-04 verdadero verdadero 16:40 1
2022-04-05 falso verdadero 18:20 2
2022-04-06 falso verdadero 13:20 3

Solo necesito las filas donde mes y anio son true , pero la cláusula WHERE no reconoce a mes y anio como columnas de la tabla.

En cambio, recibí el siguiente error:

 ERROR: column "mes" does not exist LINE 1: ..._medicion from medicion where r_fisico = true and mes = true... ^ SQL state: 42703 Character: 353

Necesito estos valores para un <input type='month' />

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Un enfoque utilizando sub-consulta.

Básicamente, ajuste su consulta con otra selección y coloque la condición WHERE afuera.

 SELECT * FROM ( SELECT fecha, EXTRACT(MONTH FROM fecha) = 3 AS mes, EXTRACT(YEAR FROM fecha) = 2022 AS anio, hora, folio FROM table ) t WHERE t.anio = true and t.mes = true;
about 4 years ago · Juan Pablo Isaza Relatório

0

Su problema se deriva de la secuencia en que se procesa cada fase de la instrucción SQL. El alias de la columna se asigna a medida que se procesa la list de selección, sin embargo, la cláusula where se procesa antes que la list de selección. Por lo tanto, el alias asignado no existe cuando se procesa la cláusula where . Básicamente tienes tres opciones:

Extraiga los valores (con alias) en una subselección (o CTE) y luego seleccione con where hace referencia al alias.

 select * from ( select fecha , extract(month from fecha) = 3 as mes , extract(year froM fecha) = 2022 as anio , hora , folio from table ) where mes = true and anio = true;

Repita la evaluación para mes y anio (sin el alias real).

 select fecha , extract(month from fecha) = 3 as mes , extract(year froM fecha) = 2022 as anio , hora , folio from table where extract(month from fecha) = 3 and extract(year froM fecha) = 2022 ;

Reescriba con where haciendo referencia solo a la fecha en sí.

 select fecha , extract(month from fecha) = 3 as mes , extract(year froM fecha) = 2022 as anio , hora , folio from table where date_trunc('month', fecha) = date '2022-03-01';

Nota Ninguno probado.

about 4 years ago · Juan Pablo Isaza 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