Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   MSSQL Server - Consulta (https://www.clubdelphi.com/foros/showthread.php?t=5800)

Viet 04-12-2003 20:59:34

MSSQL Server - Consulta
 
Buenas Gente:

Estoy tratando de generar una sentencia SQL que me devuelva el numero de semana de un mes, de la fecha que se encuentra en un reg....

Lo que he probado es
Código:

select
(datepart(dd, '06/10/2003') /7) +1,
datename(mm, '06/10/2003')


Pero esto no funciona ya que depende de que dia empiece el mes....

Osea lo que tendria que ver en este caso es :

Nro Mes
2 Octubre


Muchas Gracias por su tiempo

Investment 05-12-2003 12:19:27

Truco 78 del trucomania (espero que te sirva):

Hallar el numero de semana del año de una fecha


Código:

 
  procedure TForm1.Button1Click(Sender: TObject);
    var 
        frstDay,toDay : TDateTime; 
        week : Integer;
    begin
      frstDay := StrToDate('1/1/96');
      toDay := StrToDate(Edit1.Text);
      week := Trunc((toDay - frstDay) / 7) + 1;
      Label1.Caption := IntToStr(week);
    end;


Viet 05-12-2003 14:17:30

Investment, muchas gracias por tu dato.....pero me olvide de comentar que esto o tengo que resolver en SQL :(

guillotmarc 05-12-2003 14:29:37

Hola Viet

Ese código no parece nada dificil pasarlo a SQL, o estoy muy equivocado o seria algo como :

(cast((campo_fecha - cast('1/1/1996' as datetime)) / 7 as integer) +1)

Aunque en el ejemplo, se supone que estamos en 1996, seria mejor cambiar '1/1/1996' por

'1/1/' + cast(datepart(yyyy, campo_fecha) as varchar(4))

Habrás podido ver que esto te da el nº de semana en el año, me parece que no es lo que querias.

Saludos.

Viet 05-12-2003 14:45:18

Hola Marc:

Justamente, el tema es que necesitaba saber el numero de semana, pero del mes, ya que la del año la puedo sacar con datepart(ww,campo_fecha) .

Por lo que creo tampoco podría sacar el num de semana del año y dividirlo por el numero de mes*4, ya que algunos meses tienen mas de 4 semanas.

Creo que se tendria que hacer con el numero de dia del mes (datepart(dd, campo_fecha)), dividiendo por 7, pero todo depende que dia, empiece el mes.

Aun no termino se sacarlo, pero ando serca.


La franja horaria es GMT +2. Ahora son las 07:06:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi