Array
(
)

como obter o numero da semana dentro do mês

N_informatica
   - 21 ago 2007

Caros amigos.

Preciso extrair o numero da semana dentro de um mês ex:

a data 21/08/2007 referese a qual semana dentro do mês 08 no ano de 2007, vejam bem não é dentro do ano e sim dentro do mês e ano.

E uma outra duvida sería a seguinte como utilizo funções externas udf´s com SQL Server.

Se puderem me ajudar ficarei grato.

Tadeu Rodrigues de Oliveira
Números Informática

Flasp2000
   - 23 ago 2007

Velhinho pelo o que entendí no select que necessita.

SELECT (O que necessita) FROM Tabela
WHERE dt_inicio >= ´2007-08-21´ AND dt_inicio <= ´2007-08-24´

Coloquei a semana que necessita, Vc terá que trazer no sql o campo que necessita.

Essa forma é fácil de fazer, E se não for o que te atende peço que explique melhor o tópico.

Emerson
   - 23 ago 2007


Citação:
Caros amigos.

Preciso extrair o numero da semana dentro de um mês ex:

a data 21/08/2007 referese a qual semana dentro do mês 08 no ano de 2007, vejam bem não é dentro do ano e sim dentro do mês e ano.

E uma outra duvida sería a seguinte como utilizo funções externas udf´s com SQL Server.

Se puderem me ajudar ficarei grato.

Tadeu Rodrigues de Oliveira
Números Informática

mostre um exemplo de como você quer o resultado:
#Código

 D  S  T  Q  Q  S  S
                1  2    => Semana ?
 3  4  5  6  7  8  9    => Semana ?
10 11 12 13 14 15 16    => Semana ?
17 18 19 20 21 22 23    => Semana ?
24 25 26 27 28 29 30    => Semana ?
31                      => Semana ?


Marconogueira
   - 04 set 2007

Esta dica está em:
[u:3752e0c189]http://www.berezniker.com/display/SQL/Week+number+in+a+Month[/u:3752e0c189]

DECLARE @dt datetime, @WeekOfMonth tinyint
SET @dt = ´2007-07-08´

SET @WeekOfMonth = (DAY(@dt) +
(DATEPART(dw, DATEADD (month, DATEDIFF (month, 0, @dt), 0)) -- The day of the week for the first day of month
-1) -- # of days to add to make the first week full 7 days
-1)/7 + 1
PRINT WeekOfMonth

Guilherme Wiethaus
   - 31 ago 2012

Pessoal, estou colocando uma situação interessante, a qual se deseja retornar todas as datas agendadas dentro do número da semana no mes a partir de uma data desejada, no caso, 02/09/2012.

Antes do Filtro:

#Código

SELECT 
  DATEPART( WK, DataHoraInicial) AS NrSemana, * FROM Agendas 


Semana # DataHoraInicial DataHoraFinal
-----------------------------------------------------------------
35 1 2012-08-28 15:00:00.000 2012-08-28 16:00:00.000
35 2 2012-08-29 15:00:00.000 2012-08-29 16:00:00.000
35 3 2012-08-27 15:00:00.000 2012-08-27 16:00:00.000
35 4 2012-08-31 15:00:00.000 2012-08-31 16:00:00.000
35 5 2012-09-01 15:00:00.000 2012-09-01 16:00:00.000
31 6 2012-08-01 15:00:00.000 2012-08-01 16:00:00.000
31 7 2012-08-02 15:00:00.000 2012-08-02 16:00:00.000
36 8 2012-09-02 15:00:00.000 2012-09-02 16:00:00.000
36 9 2012-09-04 15:00:00.000 2012-09-04 16:00:00.000
36 10 2012-09-05 15:00:00.000 2012-09-05 16:00:00.000
36 11 2012-09-06 15:00:00.000 2012-09-06 16:00:00.000

Após o Filtro:

#Código
SELECT
  DATEPART( WK, DataHoraInicial) AS NrSemana, * FROM Agendas 
WHERE
  DATEPART( WK, DataHoraInicial) = (SELECT DATEPART( WK, 2012-09-02))


Semana # DataHoraInicial DataHoraFinal
-----------------------------------------------------------------
36 8 2012-09-02 15:00:00.000 2012-09-02 16:00:00.000
36 9 2012-09-04 15:00:00.000 2012-09-04 16:00:00.000
36 10 2012-09-05 15:00:00.000 2012-09-05 16:00:00.000
36 11 2012-09-06 15:00:00.000 2012-09-06 16:00:00.000

Rodrigo Kulb
   - 30 dez 2014

Olá Pessoal estava procurando também essa solução, porem utilizei o PHP para pegar:

#Código

$semana = ceil(date('d')/7);
print $semana; 


Desta forma você consegue saber o número da semana dentro do més, de 1 à 5, dependendo do mês.

Abs.

Alex Lekao
   - 03 jan 2015

Ola Tadeu, Bom dia!!!

Faca um teste de acordo com o que eh explicado no seguinte link http://sqlfromhell.wordpress.com/tag/semana-do-mes/

Acho que vai te ajudar.

Abraco.