Fórum Duvida em SQL Firebird.. #341003

26/04/2007

0

estou fazendo um sistema de agenda para inserir em meu sistema..
que deva listar lembretes do dia, semana, mes e ano..

os do dia, mes e ano ja consegui matar..

gostaria de uma ajudinha pra saber como pego numa consulta os dias apartir de segunda feira ate domingo?

o meu codigo para pegar o do dia eh:

procedure TFrmAgenda.ShowTodday;
var
ADia: String;
begin
try
ADia := QuotedStr(FormatDateTime(´yyyy-MM-dd´,Now));
with IBAgenda do
begin
Close;
SQL.Clear;
SQL.Add(´select * from AGENDA_LEMBRETES where DATA_FINAL >=´ + ADia + ´;´);
Open;
while not Eof do
begin
with ListDia.Items.Add do
begin
ID_Lembrete.Add(FieldByName(´ID_AGENDA´).AsString);
Caption := FieldByName(´MENSAGEM´).AsString;
SubItems.Add(FieldByName(´DATA_INICIAL´).AsString);
SubItems.Add(FieldByName(´DATA_FINAL´).AsString);
Next;
end;
end;
end;
except

end;
end;

mes:
procedure TFrmAgenda.showMonth;
var
AMes,Q: String;
begin
try
AMes := (FormatDateTime(´MM´,Now));
with IBAgenda do
begin
Close;
SQL.Clear;
Q := ´select id_agenda,mensagem,data_inicial,extract(month from DATA_FINAL) as mes,DATA_FINAL from AGENDA_LEMBRETES´ +
´ where extract(month from DATA_FINAL)=´ + AMes;
SQL.Add(Q);
Open;
while not Eof do
begin
with ListMes.Items.Add do
begin
ID_Lembrete.Add(FieldByName(´ID_AGENDA´).AsString);
Caption := FieldByName(´MENSAGEM´).AsString;
SubItems.Add(FieldByName(´DATA_INICIAL´).AsString);
SubItems.Add(FieldByName(´DATA_FINAL´).AsString);
Next;
end;
end;
end;
except

end;
end;

ano:
procedure TFrmAgenda.showYear;
var
AYear,Q: String;
begin
try
AYear := (FormatDateTime(´yyyy´,Now));
with IBAgenda do
begin
Close;
SQL.Clear;
Q := ´select id_agenda,mensagem,data_inicial,extract(year from DATA_FINAL) as Ano,DATA_FINAL from AGENDA_LEMBRETES´ +
´ where extract(year from DATA_FINAL)=´ + AYear;
SQL.Add(Q);
Open;
while not Eof do
begin
with ListAno.Items.Add do
begin
ID_Lembrete.Add(FieldByName(´ID_AGENDA´).AsString);
Caption := FieldByName(´MENSAGEM´).AsString;
SubItems.Add(FieldByName(´DATA_INICIAL´).AsString);
SubItems.Add(FieldByName(´DATA_FINAL´).AsString);
Next;
end;
end;
end;
except

end;
end;

so postei eles caso alguem precise de algo similar ;)

agradeço desde ja qm poder me auxiliar..


Nightshade

Nightshade

Responder

Posts

26/04/2007

Josafat

Olá
tem algumas funções prontas que retornam o primeiro dia da semana ou o ultimo dia da semana


Responder

Gostei + 0

26/04/2007

Nightshade

e quais seriam?
vc cnhc alguma?
eu tava tentando com dayweek, mas nao sei como montar uma função que faça isso pra mim :T


Responder

Gostei + 0

27/04/2007

Josafat

Na DateUtils tem duas funções :

StartOfTheWeek(const AValue: TDateTime): TDateTime;
EndOfTheWeek(const AValue: TDateTime): TDateTime;

como elas retornam tipo data , é so transformar em string de acordo com o banco que vc esta utilizando e jogar no sql :D :D


Responder

Gostei + 0

27/04/2007

Nightshade

procedure TFrmAgenda.ShowWeek;
var
ADia: String;
SDia: String;
Q: String;
begin
try
ADia := QuotedStr(FormatDateTime(´yyyy-MM-dd´,Now));
SDia := QuotedStr(FormatDateTime(´yyyy-MM-dd´,StartOfTheWeek(Date)));
with IBAgenda do
begin
Close;
SQL.Clear;
Q := ´select * from AGENDA_LEMBRETES where DATA_FINAL between ´ + SDia + ´ and ´ + ADia;
SQL.Add(Q);
Open;
while not Eof do
begin
with ListWeek.Items.Add do
begin
ID_Lembrete.Add(FieldByName(´ID_AGENDA´).AsString);
Caption := FieldByName(´MENSAGEM´).AsString;
SubItems.Add(FieldByName(´DATA_INICIAL´).AsString);
SubItems.Add(FieldByName(´DATA_FINAL´).AsString);
Next;
end;
end;
end;
except

end;
end;

Ta ai a função q fiz pra pegar todos os registros da semana..
dúvida resolvida.. vlw


Responder

Gostei + 0

27/04/2007

Nightshade

[..]

try
ADia := QuotedStr(FormatDateTime(´yyyy-MM-dd´,EndOfTheWeek(Date)));
SDia := QuotedStr(FormatDateTime(´yyyy-MM-dd´,StartOfTheWeek(Date)));
with IBAgenda do

[..]

alterem a seguinte parte do codigo :p
por distraçao eu n vi que estava incorreto isto..


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar