Ordinare Una Data Gg/mm/yyyy In Una Gridview

Salve a tutti ragazzi.

Nel db ho una colonna data importata da un altro db scritta nel formato gg/mm/YYYY.

Voi come fareste per ordinarla agevolmente in una gridview? Perchè chiaramente con ASC e DESC non va bene, dovrebbe essere nel formato YYYYmmdd

Ed eventualmente se volessi impostare una scope del tipo

attivi => gg/mm/YYYY >= oggi, che cosa mi consigliate?

Grazie e buon lavoro per chi lo è, e buone ferie a tutti gli altri :rolleyes:

Ti fermo subito: come mai hai salvato un campo data in stringa? Le date hanno già un loro formato sia per php (DateTime) che per i database (data).

eh lo so, però purtroppo mi trovo in questa situazione per vari motivi. il campo data mi arriva già così. o lo tratto prima o lo tratto dopo.

Al momento ho scelto di trattarlo dopo e volevo trovare un modo per aggirare il problema.

Beh, partiamo dal presupposto che non è corretto salvarlo in quel formato, se il database è il tuo, puoi scegliere di eliminare l’errore salvando direttamente un campo in formato data, oppure di crearti un problema, e di spendere energie per risolvertelo. Ma capisci anche tu che la cosa migliore da fare è salvare un campo data in formato data.

chiaramente è così. e queste son le scelte che sostengo per progetti che gestisco integralmente.

Ora mi ritrovo con questo db su cui operare già riempito,

cercavo un modo per ovviare al problema che qualcun altro ha creato;

e visto che l’unica operazione che devo farci sopra è quello che chiedo nel post di apertura, ho pensato ne valesse la pena fare un confronto qui sul forum prima di mettermi a convertire tutta la colonna in questione.

ho pensato a creare degli attributi virtuali in questo modo riesco a stamparmi il valore come voglio però come filtrarlo?

Se il db ora è tuo e puoi modificarlo, ti suggerisco di seguire pochi semplici passi:

  • aggiungere un campo alla tabella

  • scrivrere uno script che fetcha tutti i record

  • convertire ogni campo nel formato gg/mm/aaaa in yyyy-mm-dd hh:mm:ss

  • oppure convertire ogni campo nel formato gg/mm/aaaa in yyyy-mm-dd

Da questo momento potrai usare direttamente le formule che ti regala SQL per ordinare le date. Potrai usare anche la between, per esempio, per caricare un range di date. Tu ora hai davanti a te un campo stringa.

PS. Dimmi che macchina ha chi ha fatto il campo data in formato stringa che gli rigo lo sportello.

Si infatti con pochi semplici passaggi (se hai la gestione del database) puoi tranquillamente trasformarti tutti i campi stringa (ovvero le date) in date.

Bella questa battuta :D

eh si! Alla fine ho fatto quello che andava fatto.

Anche prima di scrivere sul forum credevo fosse l’unica strada, ma una consultazione andava fatta! :rolleyes: