Lucas de Jesus Postado Novembro 16, 2017 Denunciar Share Postado Novembro 16, 2017 Estou tentando filtrar os itens pela data dm.QRY_LANCAMENTO.Active:=false; dm.QRY_LANCAMENTO.sql.Clear; dm.QRY_LANCAMENTO.sql.Add('SELECT L.*, C.DESCRICA0 AS CATEGORIA'); dm.QRY_LANCAMENTO.sql.Add('FROM LANCAMENTO L'); dm.QRY_LANCAMENTO.sql.Add('JOIN CATEGORIAS C ON (C.ID_CATEGORIA = L.ID_CATEGORIA)'); dm.QRY_LANCAMENTO.SQL.Add('WHERE strftime(''%m'', L.DATA) = ''mes'' '); dm.QRY_LANCAMENTO.Active:=true; Sendo que mes é uma variável que recebe o número do mês. Ela é alterada usando um botão (mes:= mes + 1). Alguém sabe porque não esta funcionando e uma solução? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Novembro 16, 2017 Denunciar Share Postado Novembro 16, 2017 amigo, isso é delphi ou php ? qual o banco de dados que está usando ? se for php veja : https://secure.php.net/manual/pt_BR/function.strftime.php abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Lucas de Jesus Postado Novembro 20, 2017 Autor Denunciar Share Postado Novembro 20, 2017 É delphi. Como assim qual banco de dados ? abç Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Novembro 20, 2017 Denunciar Share Postado Novembro 20, 2017 perguntei porque essa função pode ser do: pyhton, php, ruby, sqlite, c .... string strftime ( string $format [, int $timestamp ] ) exemplo: Na SQL.text da QUERY 'select nome,data_nasc from Tabela where strftime('%m', Data_nasc) = :mes' query.parambyname('mes').asstring := 'xx' // mês com dois digitos; OBS: experimente passando um parametro ou coloque no lugar do mes um valor para testar ( usando a sua select ) abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Lucas de Jesus Postado Novembro 21, 2017 Autor Denunciar Share Postado Novembro 21, 2017 Boa noite. Tentei usar parametros e um valor fixo, mas ainda não funciona. Continuam aparecendo todos os dados da tabela. abç Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Novembro 22, 2017 Denunciar Share Postado Novembro 22, 2017 qual é o banco de dados que voce esta usando ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Lucas de Jesus Postado Novembro 22, 2017 Autor Denunciar Share Postado Novembro 22, 2017 Como assim ? Pode explicar ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Novembro 22, 2017 Denunciar Share Postado Novembro 22, 2017 se voce esta fazendo Join em Tabelas, elas devem ser de algum tipo de Banco de Dados exemplo: BDE, MAYSQL, INTERBASE, FIREBIRD, ORACLE ...etc dependendo de qual estiver usando, posso te passar outro tipo de função Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Lucas de Jesus Postado Novembro 22, 2017 Autor Denunciar Share Postado Novembro 22, 2017 db browser for sqlite Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Novembro 22, 2017 Denunciar Share Postado Novembro 22, 2017 faça o teste usando apenas uma Tabela SELECT data,strftime('%Y',data) as "Ano", strftime('%m',data) as "Mes", strftime('%d',data) as "Dia" FROM LANCAMENTO WHERE strftime('%m',data) IN('01','02','03'); Resultado data Ano Mes Dia ---------- ---------- ---------- ------ 1993-01-13 1993 01 13 1996-02-17 1996 02 17 1998-03-24 1998 03 24 1999-01-01 1999 01 01 1998-03-24 1998 03 24 1999-01-01 1999 01 01 OBS: Nesse exemplo, voce deverá obter como resultado as datas da Tabela, apenas com os meses escolhidos ( 01, 02, 03 ) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Lucas de Jesus
Estou tentando filtrar os itens pela data
dm.QRY_LANCAMENTO.Active:=false;
dm.QRY_LANCAMENTO.sql.Clear;
dm.QRY_LANCAMENTO.sql.Add('SELECT L.*, C.DESCRICA0 AS CATEGORIA');
dm.QRY_LANCAMENTO.sql.Add('FROM LANCAMENTO L');
dm.QRY_LANCAMENTO.sql.Add('JOIN CATEGORIAS C ON (C.ID_CATEGORIA = L.ID_CATEGORIA)');
dm.QRY_LANCAMENTO.SQL.Add('WHERE strftime(''%m'', L.DATA) = ''mes'' ');
dm.QRY_LANCAMENTO.Active:=true;
Sendo que mes é uma variável que recebe o número do mês. Ela é alterada usando um botão (mes:= mes + 1). Alguém sabe porque não esta funcionando e uma solução?
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
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.