[MySql] Convertire una stringa in data

lunedì 10 dicembre 2007 - 10.59

Gemini Profilo | Expert

Ciao a tutti,
ho un db mysql con un campo stringa che contiene una data nel formato gg/mm/aaaa.
Vorrei selezionare dei record e ordinarli per data.
ho fatto così:
SELECT * FROM portfolio_tbl ORDER BY CONVERT(datetime,data) DESC LIMIT 0,1

Ma ricevo errore proprio sul convert.
Come risolvo il problema?
Grazie

lbenaglia Profilo | Guru

>ho un db mysql con un campo stringa che contiene una data nel
>formato gg/mm/aaaa.
>Vorrei selezionare dei record e ordinarli per data.
>ho fatto così:
>SELECT * FROM portfolio_tbl ORDER BY CONVERT(datetime,data) DESC
>LIMIT 0,1
>
>Ma ricevo errore proprio sul convert.
>Come risolvo il problema?
Prima di tutto, per quale motivo memorizzi informazioni datetime in una colonna stringa?
Secondo, l'errore di cast è dovuto al fatto che il formato gg/mm/aaaa non è valido:
http://dev.mysql.com/doc/refman/5.0/en/datetime.html

Potresti risolvere il problema eseguendo il parsing della data componendo una stringa in uno dei formati ammessi castando il tutto a datetime, ma è una procedura doppiamente sbagliata dato che non sfrutteresti alcun indice eventualmente definito su tale colonna.

La soluzione migliore consiste nell'utilizzare i data type più idonei al tipo di informazione che vuoi archiviare.

>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5