Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Comparar data em SQL


danielrgoes

Pergunta

Bom Dia pessoal

gostaria de saber como eu faço para comparar a data atual com o banco de dados FireBird para ver se é aniversario hj

to tentando fazer o cod

dData := date; // pega a data

modulo.cds_funcionario.close;

modulo.sql_funcionario.SQL.clear;

modulo.sql_funcionario.SQL.Add('SELECT * FROM FUNCIONARIO ');

modulo.sql_funcionario.SQL.Add('WHERE DT_ANIVERSARIO = '+ DateToStr(dData) );

modulo.cds_funcionario.Open();

mais esta dando erro

alguém pode me ajudar

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

pessoal resolvi ai vai a soluçao

sData := FormatDateTime('dd''.''mm''.''yyyy',now);

sql := 'SELECT * FROM FUNCIONARIO WHERE DT_ANIVERSARIO = '+Chr(39)+ sData +Chr(39);

modulo.cds_funcionario.close;

modulo.sql_funcionario.SQL.clear;

modulo.sql_funcionario.SQL.Add(sql);

modulo.cds_funcionario.Open();

o firebird só aceita . em vez de barra e a data tem que ser entre aspas simples por isso o Chr(39)

valeu

Link para o comentário
Compartilhar em outros sites

  • 0

Putz, tava desde de cedo me matando para descobrir isso pra você, eu consegui, se precisar tá aqui:

modulo.cds_funcionario.close;

modulo.sql_funcionario.SQL.clear;

modulo.sql_funcionario.SQL.Add('SELECT CODIGO, USUARIO, SENHA, TIPO, DT_ANIVERSARIO, extract(day from dt_aniversario) as dia, extract(month from dt_aniversario) as mes '

+ 'FROM '

+ 'FUNCIONARIO '

+ 'WHERE '

+ 'extract(day from dt_aniversario) = :c_dia '

+ 'and extract(month from dt_aniversario) = :c_mes');

modulo.cds_funcionario.FetchParams;

modulo.cds_funcionario.Params.ParamByName('c_dia').AsInteger := strtoint(copy(datetostr(date),1,2));

modulo.cds_funcionario.Params.ParamByName('c_mes').AsInteger := strtoint(copy(datetostr(date),4,2));

modulo.cds_funcionario.Open;

Obs: ali no SELECT, você tem que especificar todos os seus fields, eu coloquei * mas não funcionou, porcausa do extract....

se precisar usa ae, ehehe!

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0
Putz, tava desde de cedo me matando para descobrir isso pra você, eu consegui, se precisar tá aqui:

modulo.cds_funcionario.close;

modulo.sql_funcionario.SQL.clear;

modulo.sql_funcionario.SQL.Add('SELECT CODIGO, USUARIO, SENHA, TIPO, DT_ANIVERSARIO, extract(day from dt_aniversario) as dia, extract(month from dt_aniversario) as mes '

+ 'FROM '

+ 'FUNCIONARIO '

+ 'WHERE '

+ 'extract(day from dt_aniversario) = :c_dia '

+ 'and extract(month from dt_aniversario) = :c_mes');

modulo.cds_funcionario.FetchParams;

modulo.cds_funcionario.Params.ParamByName('c_dia').AsInteger := strtoint(copy(datetostr(date),1,2));

modulo.cds_funcionario.Params.ParamByName('c_mes').AsInteger := strtoint(copy(datetostr(date),4,2));

modulo.cds_funcionario.Open;

Obs: ali no SELECT, você tem que especificar todos os seus fields, eu coloquei * mas não funcionou, porcausa do extract....

se precisar usa ae, ehehe!

Abraços!

Cara muito obrigado mesmo pela atençao

eu testei também a sua ideia e funcionou certinho muito bom ate melho que o meu

pois o meu é tipo um gambi não é?

valeu mesmo

abraçossssss

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...