Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

weikan_1991

[DÚVIDA]Comparar data atual com datetime no acess

Recommended Posts

Olá.

 

Fui contratado recentemente e a empresa onde eu trabalho utiliza o banco de dados em Access. Estou criando um sistema intranet para a empresa e entre as funções que eu preciso fazer está um sistema de aniversariantes onde é preciso fazer conexão com o banco de dados da empresa (onde há os usuários cadastrados no sistema). A ideia é a seguinte:

 

- conectar ao banco de dados;

- criar uma variável "DataHoje" que pega a data atual no seguinte formato ("dd/mm");

- selecionar tudo no banco onde somente o dia e o mês do campo "Datanascimento" (no seguinte formato "dd/mm") é igual à variável "DataHoje";

- Enquanto a variável "Datanascimento("dd/mm")" for igual à variável "DataHoje("dd/mm")" ele retorna o nome do aniversariante em uma tabela.

 

Aniversariantes

 

- Fulano

- Ciclano

...

 

- Se não houver nenhum campo em "Datanascimento("dd/mm")" igual ao campo "DataHoje("dd/mm")" ele me retorna uma linha dizendo "Sem aniversariantes hoje".

 

Eu crio uma conexão odbc e me conecto a ela normalmente. Assim como crio a variável com a data de hoje através da função "date('d/m')". O que eu não estou conseguindo é extrair somente o dia e mês da tabela do Access no formato dd/mm para poder comparar os valores e terminar meu código.

 

Alguma ajuda?

 

Agradeço desde já pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegue puxar a string no banco acess já?

Ex: '06/10/1992'

 

Caso sim é só usar o explode.

 

Ex:

$dt_nas = '06/10/1992';

$dt = explode('/', $dt_nas); //Transforma uma string em array de acordo com o primeiro parametro..
echo $dt[0]; // Retorna o primeiro pedaço do array, no caso o 'dia' -> '06'  ...

//OU.........

$dt_nas = '06/10/1992';

list($dia, $mes, $ano) = explode('/', $dt_nas);

echo $dia; //Retorna 06

Compartilhar este post


Link para o post
Compartilhar em outros sites

A estrutura do meu código é a seguinte:

<?php

$conex = odbc_connect("pessoal","","") or die ("ERRO NA CONEXAO!");
$diahoje = date('d');
$meshoje = date('m');

$selec = odbc_exec($conex,"SELECT * FROM Cadastro WHERE day(Datanascimento) = '$diahoje' AND month(Datanascimento) = '$meshoje'") or die (odbc_error());

while($lista = odbc_fetch_array($selec) or die (odbc_error())){
	echo odbc_result($lista, "Nome");
	}

?>

Há usuários na tabela do Access com a data de hoje como aniversário porém este código não está me retornando nome algum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque a sua solução aqui, pode ajudar futuros desenvolvedores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A SOLUÇÃO FOI UTILIZAR A FUNÇÃO "FORMAT(DATE,'DD/MM')" DO ACCESS AO EFETUAR A PESQUISA.

 

SEGUE O CÓDIGO:

?php

$conex = odbc_connect("pessoal","","") or die ("ERRO NA CONEXAO!");
$dia = date('d/m');
$seleciona = odbc_exec($conex, "SELECT * FROM Cadastro WHERE FORMAT(Datanascimento,'dd/mm') = '$dia'");

echo "<table align='center'>";
echo "<tr><td class='aniver_tab'></td></tr>";

while($resultado = odbc_fetch_array($seleciona)){
	echo "<tr><td class='aniver_td' align='center'><p class='aniver_texto'>".$resultado["Nome"]."</p></td></tr>";
}
	echo "</table>";
?>

ATÉ!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.