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

    MySql Select della minima differenza tra date

    Ho la necessita di effettuare una SELECT dove il valore della differenza tra la data selezionata e la data presente nel databse deve essere la più bassa possibile...cioè...

    ad esempio seleziono la data 10/05/2001

    nella mia tabella ho i campi:

    ID - CODICE - NOME - DATA

    ora la select mi deve trovare il record più vicino alla data che ho selezionato...

    per fare questo ho pensato di fare la differenza tra le date, e naturalmente il risultato più basso è quello che si avvicina più alla data...quindi....ipotizzando che ho...

    codice:
    ID - CODICE - NOME - DATA
    15 - 34 - 'nome 1' - '2001-05-02'
    18 - 39 - 'nome 2' - '2001-05-08'
    32 - 65 - 'nome 3' - '2001-05-12'
    44 - 99 - 'nome 4' - '2001-05-15'
    facendo la differenza tra la data selezionata (2001-05-10) meno le date in elenco...quella che si avvicinerà come risultato allo zero sarà l'ID che dovrà restituire la SELECT....quindi nel mio caso dovrà restituirmi l'ID 18.

    Ora a dirlo sembra facile, ma come dovrei scrivere la SELECT ???? :master:
    Qualcuno sà aiutarmi????

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Prova così

    codice:
    select *,datediff('2001-05-10',campo_data) as giorni 
    from tabella
    having giorni >= 0
    order by giorni asc limit 1

  3. #3
    Originariamente inviato da nicola75ss
    Prova così

    codice:
    select *,datediff('2001-05-10',campo_data) as giorni 
    from tabella
    having giorni >= 0
    order by giorni asc limit 1
    Sembra che funzioni...grazie!!!

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.