Originariamente inviato da x69asterix
posso settare il campo in datetime, ma per i record già inseriti?
poi mi restituisce oltre la data anche 11/01/2010 0.00.00
perchè?
le ore si posso formattare?
Be il problema effettivamente cè io proverei cosi
1) creo una nuovo campo nella tabella incriminata e lo setterei come datetime
2) mi scriverei una procedura che per ogni record della tabella trasformi il valore testuale della data in un datetime e lo registri nel nuovo campo.
Ad esempio
codice:
int anno,mese,giorno;
//faccio la query e mi calcolo anno mese e giorno
DateTime _data = new DateTime(anno, mese, giorno);
//scrivo la data nel nuovo campo
3)Adesso ci sono due possibilità una è che da ora in avanti usi entrambe le colonne in modo tale che il resto del sistema non risenta della modifica e le nuove funzionalità si appogino sulla nuova colonna ed in questo caso tutto ok tranne per il fatto che dovresti modificare solo i punti dell'applicazione dove fai inserimenti/modifiche dei record della tabella modificata visto che adesso hai un campo in piu. L'unico vantaggio che hai con questa soluzione è che nn dovresti avere problemi per le funzionalità che utilizzano questa tabella in sola lettura
Oppure eliminare la vecchia colonna e rivedere tutte le query che toccano la tabella modificata. Secondo me la seconda è la scelta migliore ma dipende dal tuo caso.
Originariamente inviato da x69asterix
poi mi restituisce oltre la data anche 11/01/2010 0.00.00
perchè?
le ore si posso formattare?
Con il DateTime hai un'ampia scelta di formattazione , tenendo poi conto del fatto che puoi sempilcemente accedere ad ogni parte che compone la data (Anno, mese ...)