Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia.
Não estou conseguindo desenvolver uma forma de identificar a qual semana do mês, determinada data pertence. Por exemplo:
A data 04/08/2015 pertence a 1ª semana do mês de agosto;
A data 11/08/2015 pertence a 3ª semana do mês de agosto;
A data 18/08/2015 pertence a 3ª semana do mês de agosto;
A data 26/08/2015 pertence a 4ª semana do mês de agosto.
Estou com uma demanda onde é necessário eu fazer uma comparação do total de horas realizada na semana. Este total de horas deve atingir a uma meta dentro da semana, se não atingir, ela é considerada como hora ociosa. Minha aplicação deve ser capaz de identificar esta hora ociosa.
Alguém teria alguma sugestão para que eu possa atender a esta demanda?
Obrigado.
Abraços.
Boa tarde senhores.
Consegui adequar minha demanda utilizando o seguinte comando no script:
Week(WeekStart(DataOperacao,0,6))-Week(WeekStart('$(vDataInicial)',0,6))+1 as Semana
onde $(vDataInicial) é a data inicial que utilizo para carga das informações do banco de dados. Desta forma, ele diminui o número da semana de acordo com a "DataOperacao" da data inicial, que será sempre a mesma.
Ex.:
Week(WeekStart(DataOperacao,0,6)) = 30
Week(WeekStart('$(vDataInicial)',0,6)) = 30
+1 = Incremento, pois a primeira semana começará no "0"
1ª Semana
Week(WeekStart(DataOperacao,0,6)) = 30
Week(WeekStart('$(vDataInicial)',0,6)) = 30
0+1 = 1 Semana
2ª Semana
Week(WeekStart(DataOperacao,0,6)) = 30
Week(WeekStart('$(vDataInicial)',0,6)) = 30
1+1 = 2 Semana
3ª Semana
Week(WeekStart(DataOperacao,0,6)) = 32
Week(WeekStart('$(vDataInicial)',0,6)) = 30
2+1 = 3 Semana
4ª Semana
Week(WeekStart(DataOperacao,0,6)) = 33
Week(WeekStart('$(vDataInicial)',0,6)) = 30
3+1 = 4 Semana
Obrigado.
Atenciosamente.
Roberto Guilherme Gomes
Bom dia Roberto.
A semana do mes, sendo ela de 1 a 4 ou 5, dependendo do mes pode ser obtida com a linha no script abaixo
1+ceil((Data-floor(weekend(monthstart(Data),0,-1)))/7) as Semana1,
Obrigado Alessandro.
Sua resposta me abriu a mente e me ajudou muito. Mas pensei em outra situação, se ao invés de eu pegar o mês cheio (01/08 a 31/08) eu tivesse que pegar o período entre 26/07 a 22/08 para identificar o mês de Agosto?
Se eu pegar o mês cheio, ficarei impossibilitado de fazer a comparação com a meta semanal, sendo que o mês pode começar na metade de uma semana e terminar na segunda-feira de outra. Alterando o período de coleta de informações, eu poderia comparar mensalmente e ter o número exato de semanas.
Como você faria para definir os números de semanas entre 26/07 a 22/08?
Obrigado mais uma vez.
Abraços.
Boa tarde senhores.
Consegui adequar minha demanda utilizando o seguinte comando no script:
Week(WeekStart(DataOperacao,0,6))-Week(WeekStart('$(vDataInicial)',0,6))+1 as Semana
onde $(vDataInicial) é a data inicial que utilizo para carga das informações do banco de dados. Desta forma, ele diminui o número da semana de acordo com a "DataOperacao" da data inicial, que será sempre a mesma.
Ex.:
Week(WeekStart(DataOperacao,0,6)) = 30
Week(WeekStart('$(vDataInicial)',0,6)) = 30
+1 = Incremento, pois a primeira semana começará no "0"
1ª Semana
Week(WeekStart(DataOperacao,0,6)) = 30
Week(WeekStart('$(vDataInicial)',0,6)) = 30
0+1 = 1 Semana
2ª Semana
Week(WeekStart(DataOperacao,0,6)) = 30
Week(WeekStart('$(vDataInicial)',0,6)) = 30
1+1 = 2 Semana
3ª Semana
Week(WeekStart(DataOperacao,0,6)) = 32
Week(WeekStart('$(vDataInicial)',0,6)) = 30
2+1 = 3 Semana
4ª Semana
Week(WeekStart(DataOperacao,0,6)) = 33
Week(WeekStart('$(vDataInicial)',0,6)) = 30
3+1 = 4 Semana
Obrigado.
Atenciosamente.
Roberto Guilherme Gomes