Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle:Dias entre duas datas e Excluir dias da semana como lidar com números negativos


Adaptado da minha resposta aqui:

Obtenha o número de dias entre as segundas-feiras de ambas as semanas (usando TRUNC( datevalue, 'IW' ) como um NLS_LANGUAGE método independente de encontrar a segunda-feira da semana) em seguida, adicione o dia da semana (segunda =1, terça =2, etc., até um máximo de 5 para ignorar fins de semana) para a data final e subtraia o dia da semana para a data de início. Assim:
SELECT ( TRUNC( end_date, 'IW' ) - TRUNC( start_date, 'IW' ) ) * 5 / 7
       + LEAST( end_date - TRUNC( end_date, 'IW' ) + 1, 5 )
       - LEAST( start_date - TRUNC( start_date, 'IW' ) + 1, 5 )
          AS WeekDaysDifference
FROM   your_table