Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    14

    MySQL select range orario tra due giorni

    Ciao a tutti
    avrei bisogno, gentilmente, di una dritta...
    ho necessità di estrarre dei dati tra due orari, '22:00:00' e '06:00:00', cioè a cavallo di 2 giorni.
    Di seguito parte del codice (tipo campo DATETIME):
    codice:
    SELECT ... FROM ... WHERE ... 
    AND TIME(data_aggiunta) >= '22:00:00' AND TIME(data_aggiunta) < '23:59:59'
    AND TIME(data_aggiunta) >= '00:00:00' AND TIME(data_aggiunta) < '06:00:00'

    Nessun risultato, se invece eseguo solo il primo AND oppure solo il secondo, estrae dati separatamente nelle 24H (solo dalle 22:00:00 alle 23:59:59 oppure solo dalle 00:00:00 alle 06:00:00).

    grazie 1000 in anticipo
    Ultima modifica di denegi; 28-01-2018 a 13:44

  2. #2
    Quote Originariamente inviata da denegi Visualizza il messaggio
    Ciao a tutti
    avrei bisogno, gentilmente, di una dritta...
    ho necessità di estrarre dei dati tra due orari, '22:00:00' e '06:00:00', cioè a cavallo di 2 giorni.
    Di seguito parte del codice (tipo campo DATETIME):
    codice:
    SELECT ... FROM ... WHERE ... 
    AND TIME(data_aggiunta) >= '22:00:00' AND TIME(data_aggiunta) < '23:59:59'
    AND TIME(data_aggiunta) >= '00:00:00' AND TIME(data_aggiunta) < '06:00:00'

    Nessun risultato, se invece eseguo solo il primo AND oppure solo il secondo, estrae dati separatamente nelle 24H (solo dalle 22:00:00 alle 23:59:59 oppure solo dalle 00:00:00 alle 06:00:00).

    grazie 1000 in anticipo
    codice:
    and date_sub(DATE(now()), interval 2 hour) BEETWEN DATE_ADD(DATE(NOW()), interval 6 hour)

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

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,359
    @denegi

    se fai una select di data_aggiunta cosa ti esce ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,359
    Direi time(data_aggiunta) >= 22:00:00 or time(data_aggiunta) < 06:00:00

    Non ho messo gli apici.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    14
    @badaze
    questo da: select data_aggiunta from attivita

    data_aggiunta
    2017-11-18 23:10:22
    2017-12-30 20:48:29
    2017-12-30 03:46:19
    2018-01-06 20:38:24
    2018-01-11 20:02:10
    2018-01-16 15:01:27
    2018-01-16 00:28:19
    2018-01-28 18:26:33
    Ultima modifica di denegi; 28-01-2018 a 23:18

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    14
    @badaze

    select con OR:

    SELECT nome_piattaforma, info, data_aggiunta
    FROM attivita, piattaforma
    WHERE id_piattaforma = piattaforma_id
    AND piattaforma.disponibile = 'si'
    AND attivita_completata = 'no'
    AND TIME(data_aggiunta) >= '22:00:00'
    OR TIME(data_aggiunta) < '06:00:00'

    ps: se tolgo dalla select ", piattaforma WHERE id_piattaforma = piattaforma_id", con OR estrae correttamente i dati
    2017-11-18 23:10:22
    2017-11-21 00:13:22
    2017-12-26 00:10:20
    2017-12-26 00:11:13
    2017-12-30 03:46:19
    2018-01-16 00:28:19


    2017-11-18 23:10:22
    2017-11-21 00:13:22
    2017-11-21 00:13:22
    2017-11-21 00:13:22
    2017-11-21 00:13:22
    2017-11-21 00:13:22
    2017-11-21 00:13:22
    2017-11-21 00:13:22
    2017-11-21 00:13:22
    2017-11-21 00:13:22
    2017-11-21 00:13:22
    2017-12-26 00:10:20
    2017-12-26 00:10:20
    2017-12-26 00:10:20
    2017-12-26 00:10:20

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    14
    Quote Originariamente inviata da piero.mac Visualizza il messaggio
    codice:
    and date_sub(DATE(now()), interval 2 hour) BEETWEN DATE_ADD(DATE(NOW()), interval 6 hour)
    @piero.mac
    grazie per la dritta, questo mi è stato d'aiuto in altro ambito

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,359
    Prova

    SELECT nome_piattaforma, info, data_aggiunta
    FROM attivita, piattaforma
    WHERE id_piattaforma = piattaforma_id
    AND piattaforma.disponibile = 'si'
    AND attivita_completata = 'no'
    AND (TIME(data_aggiunta) >= '22:00:00'
    OR TIME(data_aggiunta) < '06:00:00')
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    14
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Prova

    SELECT nome_piattaforma, info, data_aggiunta
    FROM attivita, piattaforma
    WHERE id_piattaforma = piattaforma_id
    AND piattaforma.disponibile = 'si'
    AND attivita_completata = 'no'
    AND (TIME(data_aggiunta) >= '22:00:00'
    OR TIME(data_aggiunta) < '06:00:00')
    @badaze
    ti ringrazio molto, la query estrae correttamente tutti i dati con
    codice:
    AND (TIME(data_aggiunta) >= '22:00:00' OR TIME(data_aggiunta) < '06:00:00')

  10. #10
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,359
    Potevi anche scrivere AND TIME(data_aggiunta) NOT BETWEEN ‘06:00:00’ AND ‘21:59:59’
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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 © 2024 vBulletin Solutions, Inc. All rights reserved.