Ir para conteúdo

POWERED BY:

Arquivado

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

Web 1

Select MYSQL por data

Recommended Posts

Ola pessoal,

gostaria de saber como pegar select por data no banco MYSQL.

 

gravie nas colunas assim chamadas.

 

NoticiaData

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não percebi nada da sua dúvida de qualquer maneira deixo aqui um select que pesquisa por data no mysql

 



sql = "select * from xpto where data='2012-04-22'"

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode fazer suas operações diretamente na string SQL, usando os comandos, Day,month, year, entre outros Lembre-se o campo data será do tipo date.

 

Vamos supor que eu tenha uma tabela de noticias e que quero pesquisar todas as noticias dos ultimos 10 dias. A tabela de notícias terá as seguintes informações:

 

id data titulo noticia

1 2012-01-01 titulo da noticia 1 noticia 1

2 2012-01-30 titulo da noticia 2 noticia 2

3 2012-01-25 titulo da noticia 3 noticia 3

 

Para fazer a pesquisa irei fazer a seguinte pesquisa:

 

SELECT data, titulo FROM noticia WHERE TO_DAYS(NOW()) – TO_DAYS(data) TO_DAYS(data);

 

Este exemplo irá me retornar todos as noticias que já passaram, ou seja irá me retornar :

2012-01-01 titulo da noticia 1

2012-01-25 titulo da noticia 3

 

O NOW(), deste exemplo estou levando em consideração o dia de hoje 27/01/2012.

 

para manipularmos dados do tipo DATA, podemos definir a coluna como DATE, DATETIME ou TIMESTAMP, sendo que suas principais características são:

 

# DATE esta no formato AAAA-MM-DD

# DATETIME esta no formato AAAA-MM-DD HH:MM:SS

# TIMESTAMP esta no formato AAAAMMDDHHMMSS

 

Apesar das datas do tipo DATETIME e TIMESTAMP utilizarem hora, minuto e segundo, podemos utilizar seu conteúdo somente com a data. Para isso, utiliza-se a função DATE_FORMAT(date,format), que transforma a data apresentada para o formato desejado. Também podemos utilizar essa função para colocar qualquer tipo de data no formato mais adequado para nossa aplicação, como por exemplo no formato "DD/MM/AAAA".

 

As datas são armazenadas no formato norte-americano e, para obtermos o resultado no formato Brasileiro, devemos utilizar a função acima:

 

Ex: se for necessário apresentar a data de uma determinada transação no formato

"DD/MM/AAAA" deve-se fazer o comando de seleção com a seguinte sintaxe:

 

SELECT DATE_FORMAT(nome_da_coluna_com_a_data, '%d/%m/%Y')

FROM nome_da_tabela;

 

Atenção especial deve ser dada às colunas definidas como "TIMESTAMP", pois nelas ficam depositados data e horário de atualização da linha na tabela, isto é: quando é feita uma mudança em qualquer dado de uma linha da tabela o dado da coluna definida como TIMESTAMP é atualizado com o momento atual.

 

Para melhor entender o uso dos tipos de data no MySQL, apresentamos a seguir comandos que demonstram o resultado de datas formatadas:

 

SELECT * FROM FORMATODATA;

SELECT DATE_FORMAT(DT_DateTime, '%d/%m/%Y') as 'DATETIME',

DATE_FORMAT(DT_Date, '%d/%m/%Y') as 'DATE',

DATE_FORMAT(DT_Timestamp, '%d/%m/%Y') as 'TIMESTAMP'

FROM FORMATODATA;

 

Para fazermos uso da data atual, devemos utilizar a função CURDATE(), que retornará a data corrente no formato AAAA-MM-DD e se necessitarmos a data no formato AAAAMMDD utlizamos a função CURDATE() + 0.

 

E abiaxo vários exemplos

 

Ex.|

SELECT CURDATE(), CURDATE + 0;

 

Para obtermos a diferença de dias entre duas datas, utilizamos a função DATADIFF(data1, data2).

 

Ex.|

SELECT DATEDIFF('2007-10-30 23:59:59','2007-12-31'

 

Para somarmos dias a uma data, utilizamos a função DATE_ADD(date,INTERVAL exprtype)

 

Ex.|

SELECT DATE_ADD('2005-12-31 23:59:59', INTERVAL 1 DAY);

 

Para subtrairmos dias a uma data, utilizamos a função SUBDATE (date,INTERVAL exprtype)

 

Ex.|

SELECT SUBDATE('2005-12-31 23:59:59', INTERVAL 5 DAY);

 

Para obtermos o dia da semana, utilizamos a função DAYOFWEEK(date)

 

Ex.|

SELECT DAYOFWEEK('1998-02-03');

 

Para obtermos o dia do ano utilizamos a função DAYOFYEAR(date)

 

Ex.|

SELECT DAYOFYEAR(CURDATE());

 

Para obtermos o momento atual, utilizamos a função NOW() ou SYSDATE()

 

Ex.|

SELECT NOW(), SYSDATE();

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.