Visualizzazione dei risultati da 1 a 4 su 4

Discussione: istruzione between

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    1,171

    istruzione between

    ho una tabella cosi:
    dal
    01/01/2006 20
    01/01/2007 30
    01/12/2008 40

    dovrei fare una query per ricercare la data piu vicina.
    esempio, se mi scrivo la data 20/05/2007 mi dovrebbe ricercare il record
    01/01/2007 30

    ho provato:
    select * from tabella where periodo='...... e poi?

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Più vicina a prescindere che sia antecedente o futura?
    Rdbms utilizzato?

    Visto che hai postato qui immagino stia parlando di sql server.

    Dovrebbe essere una cosa del genere

    codice:
    select * from tabella where
    datediff(day,dal,convert(datetime,'20/05/2007',103))
    = (
    select 
    min(abs(datediff(day,dal,convert(datetime,'20/05/2007',103)))) from tabella
    )
    In questo modo nel caso abbia più record con la stessa differenza di giorni minima ti verranno restituiti tutti a differenza di quanto otterresti con un top 1.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    1,171
    hai ragione. si tratta di sql server-
    la query funziona se la data di ricerca rientra nei record inseriti in tabella.
    però se l'ultimo record inserito è per esempio
    01/12/2008 e ricerco la data successiva all'ultimo record inserito non mi trova niente
    se inserisco 20/05/2009 mi dovrebbe trovare 01/12/2008

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    La query fa esattamente ciò che chiedi, anche col tuo esempio specifico.

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.