Duvida em SQL Firebird..
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..
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
Curtidas 0
Respostas
Josafat
26/04/2007
Olá
tem algumas funções prontas que retornam o primeiro dia da semana ou o ultimo dia da semana
tem algumas funções prontas que retornam o primeiro dia da semana ou o ultimo dia da semana
GOSTEI 0
Nightshade
26/04/2007
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
vc cnhc alguma?
eu tava tentando com dayweek, mas nao sei como montar uma função que faça isso pra mim :T
GOSTEI 0
Josafat
26/04/2007
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
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
GOSTEI 0
Nightshade
26/04/2007
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
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
GOSTEI 0
Nightshade
26/04/2007
[..]
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..
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..
GOSTEI 0