Ir para conteúdo

POWERED BY:

Arquivado

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

bdexterholland

Correção de uma POG de DB

Recommended Posts

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa,

 

Seria aconselhável, já que você tem o select pronto, CRIAR uma nova tabela e inserir os registros de forma adequada com:

 

CREATE TABLE nome_qualquer SELECT...

 

...assim você teria melhores recursos para trabalhar pois a lib de Date Functions do MySQL é bem extensa.

 

Abração e qualquer dúvida, continue postando!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas, se eu me lembro bem (já faz um tempo e o projeto não é meu na verdade) eu tive que criar campos separados para a data porque o delphi envia a data no formato DDMMYYYY e o MySQL é YYYYMMDD, tem como mudar isso no mysql?

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.