Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Ordina per data

  1. #1

    Ordina per data

    Ciao a tutti ho la necessità di estrapolare dal db dei delle news per le devo posizionare per data dalla più vecchia alla piu recente ora sul db ho la data così composta es. Mercoledì, 2 Ottobre 2007 come faccio a ordinare per data avendo una data così composta ???

  2. #2
    La domanda sorge spontanea, ma sei masochista che metti una data così?
    Le date se possibile devono essere messe in quanto tali, presa una data ci fai quello che vuoi, ma dal formato che hai specificato ci fai poco e niente.

    Se hai la possibilità di modificare il db, ti consiglio di convertire le date così come le hai scritte in date vere.

    Per poter ordinare questa cosa ti dico che non è impossibile, ma devi fare una query spaventosa e sforzare molto di più il webserver

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Pienamente d'accordo con Debiru. Se per lo meno il nome del giorno e del mese fossero in inglese con un str_to_date te la caveresti in fretta. Così com'è bisognerebbe lavorarci un pò su per fare l'update in un campo di tipo date più consono.

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Giusto per sfizio ho provato a recuperare le date a partire dalla tua stringa.
    Aggiungi un campo di tipo date alla tua tabella ed esegui questa query.
    Al posto di stringa metti il nome del tuo campo che contiene quelle date folli.

    codice:
    update tabella set `data` = 
    concat_ws('-',
    substring_index(
    trim(substring_index(stringa,',',-1)),' ',-1),
    case
    when locate('Gennaio',stringa) then '01'
    when locate('Febbraio',stringa) then '02' 
    when locate('Marzo',stringa) then '03'
    when locate('Aprile',stringa) then '04' 
    when locate('Maggio',stringa) then '05' 
    when locate('Giugno',stringa) then '06' 
    when locate('Luglio',stringa) then '07' 
    when locate('Agosto',stringa) then '08' 
    when locate('Settembre',stringa) then '09' 
    when locate('Ottobre',stringa) then 10 
    when locate('Novembre',stringa) then 11 
    when locate('Dicembre',stringa) then 12 
    end,
    lpad(substring_index(
    trim(substring_index(stringa,',',-1)),' ',1),2,'0'))

  5. #5
    Allora la data ne ho due sul db l'altra è in formato 3/10/2007 però sul db non le salvo in campo date ma in un semplice campo text è uguale ??

  6. #6
    Se era in campo date era meglio, perché potevi fare un order by secco sulla data.

    Purtroppo per ordina re bene una data anche se in formato testo è il metodo sarebbe inserirla in questo ordine

    AAAA/MM/GG

    Potresti provare a vedere se trovi delle funzioni per convertire il testo in data e ordiner per il risultato della funzione, dovrebbe funzionare.

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da r3dd3vil
    Allora la data ne ho due sul db l'altra è in formato 3/10/2007 però sul db non le salvo in campo date ma in un semplice campo text è uguale ??
    Qui trovi spiegato come convertire anche quel formato in date.

    http://forum.html.it/forum/showthrea...readid=1012040

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.