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

Localizar Dias Nas Datas


Halfar

Pergunta

Como poderia fazer para localizar determinados dias nas datas. Por exemplo, quero localizar todas as datas cujos dias sejam 5, ou seja, 5/1/2006, 5/2/2006, 5/3/2006, etc... Não importa o mês e o ano, quero recperar somente as datas que coincidam com o dia, no exemplo citado, quero recuperar todas as datas cujos dias sejam 5.

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

ola,

não funcionou... deu erro. Tentei fazer de duas formas:

primeira forma:

$sql = "Select * from Poupanca where Day(Data) = '" . $DiaInicial ."'";

$sql = $sql . " and Month(Data) > '" . $MesInicial . "' and Month(Data) <= '" . $MesFinal . "'";

$sql = $sql . " and Year(Data) >= '" . $AnoInicial . "' and Year(Data) <= '" . $AnoFinal . "' order by Data Asc";

$Res = mysql_query($sql) or die("Erro" . mysql_error());

segunda forma:

aqui fiz um teste, apenas com variaveis:

$DataInicial = $AnoInicial . "-" . $MesInicial . $DiaInicial;

$DataFinal = $AnoFinal . "-" . $MesFinal . "-" . $DataFinal;

echo "diferenca entre dias" . Day($DataFinal) - Day($DataInicial);

tambem dá erro...

No primeiro caso, diz que o erro é problema de sintaxe...

No segundo caso, informa que não existe a funcao day...

Como no segundo caso informa que não existe a funcao day, então creio que no primeiro caso não é propriamente um erro de sintaxe, mas é porque não existe a funcao day.

Eu consultei o manual do php, mas não achei nada day, Month ou Year...

Link para o comentário
Compartilhar em outros sites

  • 0

A função Day() é do MySQL, por isso dá erro no PHP.

QUal é o erro de sintaxe reetornado?

A função Day() só poderá ser usada se o campo data for do tipo DATE ou DATETIME.

Tente assim:

Select * from Poupanca where Day(Data) = dia_desejado And Data Between data_inicial AND data_final order by Data Asc;

data_inicial e data_final devem estar no formato YYYY-MM-DD.

Veja se funciona.

Abraços,

Beraldo

Link para o comentário
Compartilhar em outros sites

  • 0

O erro retornado é o abaixo. As datas estão no formato americano, ano, mês e dia...

ErroYou have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax

to use near '(Data) = '4' and Month(Data) > '01' and Month(Data) <= '04' and

complementando a resposta anterior, eu fiz um arquivo de teste.php, com o seguinte codigo:

$AnoInicial = "2007";

$AnoFinal = "2008";

$MesInicial = "05";

$MesFinal = "07";

$DiaInicial = "10";

$DiaFinal = "15";

$DataInicial = $AnoInicial . "-" . $MesInicial . $DiaInicial;

$DataFinal = $AnoFinal . "-" . $MesFinal . "-" . $DataFinal;

echo "diferenca entre meses" . Day($DataFinal) - Day($DataInicial);

dá erro:

Fatal error: Call to undefined function: day() in /home/restricted/home/diariodasleis/public_html/Calculadora/NovaCalculadora/teste.php on line 24

Link para o comentário
Compartilhar em outros sites

  • 0

A função Day() não existe no PHP, só no MySQL, por isso dá erro. Nesse caso, trabalhe com timestamps.

O erro de sintaxe não deveria estar ocorrendo. Testei uma consulta parecida e não deu erro. Veja se você não deixou espaço entre Day e o pirmeiro parântese.

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,9k
×
×
  • Criar Novo...