Fórum Como pesquisar registro mais proximo de acordo com a data em MYSQL #483424
23/06/2014
0
32 Sinhá Moça 1986-04-28 1986-11-15 6 31 De Quina pra Lua 1985-10-21 1986-04-26 6 30 A Gato Comeu 1985-04-15 1985-10-19 6 29 Livre para Voar 1984-09-17 1985-04-13 6 28 Amor com Amor se Paga 1984-03-19 1984-09-14 6 27 Voltei pra Você 1983-10-10 1984-03-16 6 26 Pão Pão, Beijo Beijo 1983-03-28 1983-10-08 6 25 Paraíso 1982-08-23 1983-03-26 6 24 O Homem Proibido 1982-03-01 1982-08-21 6 23 Terras do Sem Fim 1981-11-16 1982-02-27 6
eu tenho uma tabela aonde aponto a data inicio e outra aponta a data termino de uma novela... vamos super que tenha uma novela que comece em 1986-04-28 e termina em 1986-11-15 dai eu gostaria que quando fosse procurado pela data 1986-04-30 identificasse que nessa data esta novela estava sendo transmitida, ou seja... o mysql atraves da data inicio verificaria qual novela estava passando de acordo com a data colocada pelo usuário.
Duvida nisso.. já tentei isso...
Select * from tbl_novelas where inicio >= '"& datamysql &"'
Porém esta pegando o registro seguinte ao registro que quero...
Patrique André
Curtir tópico
+ 0Posts
23/06/2014
Marisiana Battistella
Está faltando incluir um join restringindo a data de término, vc só testou com a data de inicio...
Tentar fazer assim:
Select * from tbl_novelas where data_inicio >= '"& datamysql &"' and data_termino <= '"& datamysql &"'
Não cheguei a testar esse código, qualquer coisa me avisa q eu revejo ele...
Gostei + 0
24/06/2014
Patrique André
Set AC = Conn.Execute("SELECT * FROM tbl_novelas WHERE termino BETWEEN '"& datamysql &"' AND (SELECT MAX(inicio) FROM tbl_novelas) AND horario = '6'")Funciona porém se existir uma data que não tenha no registro... ele pega o primeiro.... e eu gostaria que se não estivese no periodo de data... ou inicio ou termino... não apresentasse nada.
Gostei + 0
24/06/2014
Marisiana Battistella
A tua data de termino não está cadastrada na tabela?
32 Sinhá Moça 1986-04-28 1986-11-15 6
Gostei + 0
24/06/2014
Marisiana Battistella
Você precisa selecionar as novelas onde a data de inicio seja maior ou igual a data informada e a data de termino seja menor ou igual a data informada.
Se a data informada estiver entre essas duas datas é pq a novela está sendo transmitida...
Gostei + 0
24/06/2014
Patrique André
Vou continuar aqui tentando e pesquisando a forma mais correta para oque estou querendo, agradeço a sua atenção. obrigado.
Gostei + 0
24/06/2014
Marisiana Battistella
Eu tinha entendido que todas as novelas têm uma data de término cadastrada em uma tabela e nesse caso o select que te passei funcionaria...
Gostei + 0
29/06/2014
William
Nesse ponto você afirma que possui a data de término gravada em uma determinada tabela!
eu tenho uma tabela aonde aponto a data inicio e outra aponta a data termino de uma novela...
Já nesse ponto você afirma que NÃO sabe a data de término!
Boa noite Marisiana, é ai que esta, não não sei qual a data termino
Antes que nós possamos tentar te ajudar precisamos saber o cenário real da sua base de dados, você possui ou não a data de término gravada???
Gostei + 0
29/06/2014
William
SELECT
*
FROM
TAB_NOVELA
WHERE
data_inicio <= '1986-04-28' and data_termino >= '1986-04-30'
Repare que houve uma inversão de operadores lógicos, a condição é que a data_inicio seja menor/igual a data_usuario e a data_termino seja maior/igual a data_usuario.
Você está fazendo uma pesquisa por valor aproximado, se eu colocar a condição como data_inicio sendo maior/igual a data_usuario estou matando as datas de novela que iniciam antes da data_usuario, o mesmo ocorre com a data_termino, se a condição for data_termino menor/igual data_usuario estarei matando as novelas que terminam depois da data informada pelo usuário.
O seu objetivo pelo o que entendo é saber qual novela está sendo transmitida na data atual, por isso existe um range de valores a serem pesquisados!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)