Logo Hardware.com.br
Core_Dump
Core_Dump General de Pijama Registrado
3.2K Mensagens 111 Curtidas

Dúvida em consulta ao banco de dados MySQL.[Resolvido]

#1 Por Core_Dump 23/03/2013 - 18:42
A linguagem Python. Tenho um consulta que retorna resultados de trocentas colunas de uma tabela bem grande, e entre elas algumas com formatos de data. No codigo abaixo con e uma instancia da classe (modulo de conexao MySQLdb) e query e um atributo, funcao que realiza consulta ao banco de dados:

resultado = con.query("SELECT * from tabela1 WHERE registro = '%d'" % int(id_cliente))
No resultado de * recebo uma tupla de tuplas, com varios resultados das tabelas. O problema em questao e o formato de data ano-mes-dia, no banco de dados, datetime.date(2013, 3, 4)
Sei que posso utilizar a funcao do MySQL DATE_FORMAT para converter a data para nosso formato dia-mes-ano, fazendo a query de item por item:
"SELECT DATE_FORMAT(data_cadastro,'%s'), item2,  item3 ... FROM tabela1 WHERE ... "% '%d/%m/%Y'
O problema maior e a quantidade de itens que teria de modificar no codigo, e escrevi originalmente usando o metacaracter '*'.
Tem como eu converter todas as datas em uma query SELECT para um formato especifico sem ter que utilizar uma funcao DATE_FORMAT para cada uma delas, mantendo o operador '*' sem ter que criar varios alias para os dados?
Para ser mais claro, posso aplicar uma funcao de formatacao de data no SELECT ao inves de faze-lo dentro do SELECT?

Observacao: Nao estou utilizando * indiscriminadamente. Nao existem colisoes de nomes nas tabelas.

Seguinte, resolvi com uma gambiarra que vai me permitir manter o codigo de insercao de dados em centenas de campos em uma interface de usuario. Criei uma VIEW a partir de um SELECT na tabela original formatando as datas com DATE_FORMAT(). Assim tenho uma nova tabela sem a necessidade de alterar a original.
Se alguem souber uma solucao mais elegante, favor me informar. Vai demorar ate eu concluir o aplicativo.
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal