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

Como Retirar Mes De Data


Rafael GAGA

Pergunta

Olá pessoal, eu estou fazendo um formulário de busca onde o cliente tem a opção de marcar o filtro "MÊS ATUAL" e assim filtrar todos os pedidos que estão para ser entregues este mes, pois é, so que eu não estou conseguindo retirar o mês dos dados salvos no banco de dados, quando se cadastra o pedido ele salva a data em um campo VarChar (mysql 4.1) porque também tem a opção procurar por data de cadastro e no formato data não se salva com mesmo formato digitado (ai o sql não funciona) então eu to precisando retirar o valor do Mês de uma variável string no formato dd/mm/yyyy e comparar com o mês atual.

Se alguém tiver uma ideia de como fazer, vai me ajudar bastante...

Obrigado. biggrin.gif

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Guest Gustavo Santini

use o comando copy para vc pegar só os caracteres que representam o mes do campo em questao e guarde em uma variavel para fazer a consulta ok?? no help do delphi explica de maneira bem simples esse comando caso não conheça.. abraço..

Link para o comentário
Compartilhar em outros sites

  • 0

exemplo

procedure ....

var

ano, mes, dia : word;

begin

DecodeDate((TabelaFeriadosDtFeriado.AsDateTime), ano, mes, dia);

....

....

aqui tu digita o q tu quer fazer.

mas agora a data já ta separada em ano, mes, dia.

quando tu quiser o mes. e só indicar a variavel mes.

end;

entendeu?

vlw

Link para o comentário
Compartilhar em outros sites

  • 0

Além das opções já mencionadas, se você utilizasse em sua tabela um campo datetime, date ou timestamp, poderia utilizar funções do banco MySQL como MONTH(campo_data), YEAR(campo_data) e neste caso, para filtrar o mês atual poderia utilizar:

SELECT ...

WHERE (MONTH(campo_data) = MONTH(NOW()))

AND (YEAR(campo_data) = YEAR(NOW()))

ou parametrizando:

SELECT ...

WHERE (MONTH(campo_data) = :MES_ATUAL)

AND (YEAR(campo_data) = :ANO_ATUAL)

...

componente_SQL.ParamByName('MES_ATUAL').AsInteger = MonthOf(Date);

componente_SQL.ParamByName('ANO_ATUAL').AsInteger = YearOf(Date);

ou ainda

SELECT ...

WHERE campo_data BETWEEN :DATA_INICIAL AND :DATA_FINAL

...

componente_SQL.ParamByName('DATA_INICIAL).AsInteger = primeiro_dia_mes;

componente_SQL.ParamByName('DATA_FINAL').AsInteger = ultimo_dia_mes;

para conferir outras funções relacionadas a data e hora, dê uma olhada neste link: http://dev.mysql.com/doc/refman/5.0/en/dat...-functions.html

observe também que neste link tem a descrição da função DATE_FORMAT que lhe ajudará a formatar o campo data da maneira que quizer.

... porque também tem a opção procurar por data de cadastro e no formato data não se salva com mesmo formato digitado (ai o sql não funciona) então eu to precisando retirar o valor do Mês de uma variável string no formato dd/mm/yyyy ...
Link para o comentário
Compartilhar em outros sites

  • 0

desclupe-me, no post anterior onde aparece

componente_SQL.ParamByName('DATA_INICIAL).AsInteger = primeiro_dia_mes;

componente_SQL.ParamByName('DATA_FINAL').AsInteger = ultimo_dia_mes;

leia-se

componente_SQL.ParamByName('DATA_INICIAL).AsDate = primeiro_dia_mes;

componente_SQL.ParamByName('DATA_FINAL').AsDate = ultimo_dia_mes;

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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...