Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
tenho uma tabela onde o campo data foi dividido em 3, um para o dia, outro para o mes e outro para o ano. Eu preciso construir um select que retorne os registros que estejam com a data entre um intervalo x para o relatório. Alguém consegue me ajudar nessa, pois não sou assíduo de SQL...
Segue a ddl da tabela
CREATE TABLE examemarcado (nomeexame varchar(50) default NULL,NCNS varchar(18) default NULL,tipoexame varchar(40) default NULL,dia int(11) default NULL,mes int(11) default NULL,ano int(11) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
O marcio.theis me passou me passou essa query
SELECT nomeexame, cast((mes || '/' ||dia || '/' || ano) AS Date) AS DATA
FROM examemarcado
WHERE cast((mes || '/' ||dia || '/' || ano) AS Date) BETWEEN '12/01/2007' AND '12/15/2007'
que não estava funcionando, então eu tentei adivinhar e transformei nisso:
SELECT *
FROM examemarcado
WHERE (mes || '/' || dia || '/' || ano) BETWEEN '01/01/2007' AND '30/06/2007'
Porém, ele não filtrou direito pois retornou todos os registros e ainda gerou warnings como "TRUNCATED INCORRECT DOUBLE VALUE: '30/06/2007'"
Estou trabalhando com o MySQL 5 conectado ao delphi pelo ado que está usando o driver ODBC do MySQL. fiz os teste da query no mysql query browser....
Faz alguma idéia?
Carregando comentários...