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

311
Visualizações
PGSql: finalización de un bucle de cursor cuando la salida alcanza el valor

Vengo de un entorno de SQL Server, por lo que la sintaxis de PG es extraña para mí. Honestamente, tampoco estoy seguro de saber cómo hacer esto en TSQL...

Tenemos una tabla que tiene 3 columnas relevantes: StartTime, EndTime y Duration. StartTime representa el tiempo en el que las citas pueden comenzar a realizarse, EndTime es cuando ya no están disponibles y Duration es la duración de cada cita en minutos. Entonces, si StartTime = 0900, EndTime = 1200 y Duration = 30, tendría disponibilidad de citas a las 0900, 0930, 1000, y así sucesivamente hasta las 1200.

Estamos tratando de mostrar cada 'espacio para citas' como filas individuales. Mi idea sería usar algo como DATEADD (o el tiempo y los intervalos en PG) para agregar la duración a StartTime, luego a cada salida hasta que la salida alcance EndTime ... ¿es eso posible? A continuación se muestra el código de muestra para obtener el primer 'espacio para citas'

 SELECT STARTTIME + (duration * interval '1 minute') FROM RULEdetails as rd INNER JOIN ruledates as DT ON DT.ruledetail_id = RD.ruledetail_id ORDER BY RULE_DATE, STARTTIME

¡Cualquier aporte es muy apreciado! ¡Gracias!

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Si la tabla se llama available y la hora de starttime y la hora de endtime son del tipo timestamp with time zone o timestamp without time zone , podría consultar de esta manera:

 SELECT app.appstart FROM (SELECT starttime, endtime, duration * INTERVAL '1 minute' AS dur FROM available ) a JOIN LATERAL generate_series(a.starttime, a.endtime - a.dur, a.dur) app(appstart) ON TRUE;
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