Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   ¿existe un Extract Week? o algo similar (https://www.clubdelphi.com/foros/showthread.php?t=40000)

amadis 05-02-2007 02:28:32

¿existe un Extract Week? o algo similar
 
Existe alguna forma de hacer un Extract WEEK para comparar la fecha y por ejemplo obtener los registros cuyo campo fecha esten dentro de esta semana?

marcoszorrilla 05-02-2007 08:21:35

Aunque depende del motor que estés utilizando creo que no existe en general. Pero puedes crear un par de variables acotando la semana dInicio y dFin, que sería el comienzo y final de la semana a consultar y luego mediante:

Código SQL [-]
Where Fecha Between dInicio And dFin

Un Saludo.

amadis 05-02-2007 14:19:32

Bueno ahí lo até con alambres, usando Between.

Calculo que dia es segun el numero Ej hoy es Lunes 5 entonces la semana va desde lunes a domingo (lo uso igual al domingo)
Si fuera miercoles la semana siempre es de lunes a domingo entonces calculo que NUMERO fue el lunes y hago Between Lunes a domingo siempre.

Código Delphi [-]

// Datos (Tdatamodule);
// Consulta(TQuery);

 F,F1, F2 : string ;

begin

F := FormatDateTime('dddd',Date);

// inicio determinacion plazo de la semana

If F = 'Lunes' then
               Begin
                F1 := datetostr(Date);
                F2 := datetostr(Date+6);
               End;

If F = 'Martes' then
               Begin
                F1 := datetostr(Date-1);
                F2 := datetostr(Date+5);
               End;

If F = 'Miércoles' then
               Begin
                F1 := datetostr(Date-2);
                F2 := datetostr(Date+4);
               End;

If F = 'Jueves' then
               Begin
                F1 := datetostr(Date-3);
                F2 := datetostr(Date+3);
               End;


If F = 'Viernes' then
               Begin
                F1 := datetostr(Date-4);
                F2 := datetostr(Date+2);
               End;

If F = 'Sabado' then
               Begin
                F1 := datetostr(Date-5);
                F2 := datetostr(Date+1);
               End;

If F = 'Domingo' then
               Begin
                F1 := datetostr(Date-6);
                F2 := datetostr(Date);
               End;

// fin determinacion plazo de la semana

datos.consulta.Active := False;
datos.consulta.SQL.Clear;

Datos.consulta.Params.CreateParam(ftDate, 'F1', ptInput);
Datos.consulta.Params.CreateParam(ftDate, 'F2', ptInput);

datos.consulta.SQL.Append('select nombres,numero,fechapago,importe,paga');
datos.consulta.SQL.Append('from clientes inner join cuotas on clientes.codigo = cuotas.cod_cliente');
datos.consulta.SQL.Append('where fechapago Between Cast(:F1 as SQL_Date)  and Cast(:F2 as SQL_Date)');
datos.consulta.ParamByName('F1').AsDate := strtodate(F1);
datos.consulta.ParamByName('F2').AsDate := strtodate(F2);


La franja horaria es GMT +2. Ahora son las 10:13:23.

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