Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Selezionare data piu recente nel database

    Salve.
    Ho una tabella nel database con tutte le estrazioni passate (una lotteria) e con tutte le date prese con date("d-m-y");
    Vorrei selezionare la piu recente e stamparla a video.
    Come faccio?

  2. #2
    Le date nel database si memorizzano nel formato ansi yyyy-mm-dd

    come hai fatto tu verra' trattata come una stringa ascii. Esiste una funzione str_to_date che cerca di ricavare una data da una stringa. Puo' fare al caso tuo.

    http://dev.mysql.com/doc/refman/5.0/...on_str-to-date

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Quindi devo modificare da d-m-y a y-m-d ?

    Siccome non sono bravissimo con l'inglese,
    puoi dirmi la query da usare poi?

  4. #4
    Originariamente inviato da Zlatan94
    Quindi devo modificare da d-m-y a y-m-d ?

    Siccome non sono bravissimo con l'inglese,
    puoi dirmi la query da usare poi?
    per gestire con le funzioni "temporali" (data - ora) bisogna che le date siano memorizzate nel formato ansi che poi, guarda caso, presenta la data come se fosse un grande numero dove i valori piu' significativi sono a sx ed i meno significativi a dx, proprio come si comporta un numero.

    quindi per poter ordinare i record per data bisogna avere questo benedetto formato ansi. I casi sono due:

    ad ogni richiesta fai una conversione della data stringa in una data ansi con str_to_date() oppure "converti" le stringhe in date una volta per tutte.

    nel primo caso la query sara' pressapoco cosi':
    codice:
    select *
    from tabella
    where str_to_date(campo_data, '%d-%m-%Y') = data da cercare
    
    -- oppure con un range di date (in formato ansi)
    
    where str_to_date(campo_data, '%d-%m-%Y') between '$data_inizio' AND '$data_fine'

    per aggiornare la tabella da stringa a data basta una sola query, conviene pero' prima "aggiungere" una colonna in formato data, verificare il buon esito dell'update e poi cancellare il campo stringa.
    codice:
    update tabella 
    set data_nuova = str_to_date(data_stringa, '%d-%m-%Y');
    -- in pratica dice alla funzione come e' composta la stringa da convertire in data
    
    select *, date_format(nuova_data, '%d-%m-%Y') as data
    from tabella 
    where -- ..... come sopra ma senza l'uso di str_to_date.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Grazie mille dell'esaudiente risposta!!1

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.