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

    [MySQL] Range di Orario

    Dunque ho una tabella in cui sono inseriti una serie di campi, tra questi:
    NOME (VARCHAR)
    DA (TIME)
    A (TIME)

    le quali racchiudono il nome del negozio inserito, l'ora di apertura e quella di chiusura. Ora io voglio che fornita l'ora corrente, il database mi dica quale negozio è aperto. Se è un orario tipo
    DA 10:00:00
    A 20:00:00

    la query può andare bene così:
    "SELECT * FROM negozi
    WHERE da <= CURTIME() AND a>= CURTIME();"

    ma se l'orario di apertura fosse:
    DA 16:00:00
    A 05:00:00

    questa query non va già più bene, come posso risolvere?
    "Una volta che si saranno esaurite senza successo tutte le possibilita', ci sara' una soluzione, semplice e ovvia, che saltera' immediatamente all'occhio di chiunque altro."

    Guardate: Il Miracolo delle Noci!!

  2. #2
    prova a vedere se funziona, teoricamente dovrebbe....
    codice:
    SELECT * FROM tabella 
    WHERE 
    IF(da < a,
    CURTIME() BETWEEN da AND a,
    CURTIME() BETWEEN da AND '23:59:59'
    OR
    CURTIME() BETWEEN '00:00:00' AND a)

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

  3. #3
    Utente bannato
    Registrato dal
    Jan 2002
    Messaggi
    852
    Il problema potresti risolvero con php, recuperi i valori da a
    e poi utilizzando il timestamp risolvi il problema.. in pratica trovi il timestamp 'time()' gli togli l'ora di apertura e verifichi

    $ora = time() - /*secondi ora attaule 3600 se è l'una di notte'

    se $ora + orario di apertura è < di time() e $ora + ora chiusura < time() vuol dire che è aperto.. un pò contorto ma dovrebbe funzionare..

  4. #4
    grazie a tutti e due, il primo metodo mi sembra più semplice ma proverò entrambi.
    "Una volta che si saranno esaurite senza successo tutte le possibilita', ci sara' una soluzione, semplice e ovvia, che saltera' immediatamente all'occhio di chiunque altro."

    Guardate: Il Miracolo delle Noci!!

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.