Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072

    WHERE con range di date

    Ciao a tutti, supponendo di avere un DB con due campo Data_start e Data_end per ogni record e supponendo di passare alla pagina due variabili $date_start e $date_end, come posso visualizzare solo i record che rientrano in questo range, è corretto questo:

    "SELECT ..... WHERE.... AND ((Date_Start <= $date_end) AND (Date_End >= $date_start))";

    Dove le due variabili hanno il formato YYYYMMDD

    Mi confermate che il procedimento è OK?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Se vuoi fare quello che ho capito la data di inizio sul database deve essere maggiore di quella passata e quella di fine minore.


  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    La tua soluzione non sembra funziona

    Riassumo

    nel mio DB ho un elenco di eventi che hanno
    Data Inizio e Date Fine

    1 Set - 10 Set - Evento 11
    4 Set - 5 Set - Evento 22
    8 Set - 15 Set - Evento 33

    Io ho un filtro di ricerca lato web, e passando data inizio e data fine tramite il filtro voglio tutti vedere tutti i records che sono inclusi in questo range

    Quindi passando come range
    data inizio: 2 Set
    data fine: 11 set

    dovrei vedere i 3 eventi


    passando
    data inizio: 5 Set
    data fine: 6 set

    dovrei vedere i 3 eventi


    Io ho risolto facendo

    AND ((Date_Start <= $date_end) AND (Date_End >= $date_start))";

    Vi sembra corretto??

    Oppure esiste una soluzione differente?

    Grazie

  4. #4
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,647
    Non potrà mai funzionare. perché essendoci delle stringhe la ricerca viene effettuata in ordine alfabetico e non numerico

    quindi:
    1
    10
    11
    12
    ..
    19
    2
    20
    21
    ..
    ecc...

    Devi avere un campo di supporto che sia un time stamp o inserire le date in formato numerico a database e convertirle nel momento in cui le stampi.

  5. #5
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Originariamente inviato da Ranma2
    Non potrà mai funzionare. perché essendoci delle stringhe la ricerca viene effettuata in ordine alfabetico e non numerico

    quindi:
    1
    10
    11
    12
    ..
    19
    2
    20
    21
    ..
    ecc...

    Devi avere un campo di supporto che sia un time stamp o inserire le date in formato numerico a database e convertirle nel momento in cui le stampi.
    questo è un problema che hai se la data è nel formato GGMMYYYY ma Valeria75_bis ha detto che la sua data è nel formato YYYYMMDD, quindi può tranquillamente fare confronti con > e <.
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Originariamente inviato da Valeria75_bis
    La tua soluzione non sembra funziona

    Riassumo

    nel mio DB ho un elenco di eventi che hanno
    Data Inizio e Date Fine

    1 Set - 10 Set - Evento 11
    4 Set - 5 Set - Evento 22
    8 Set - 15 Set - Evento 33

    Io ho un filtro di ricerca lato web, e passando data inizio e data fine tramite il filtro voglio tutti vedere tutti i records che sono inclusi in questo range

    Quindi passando come range
    data inizio: 2 Set
    data fine: 11 set

    dovrei vedere i 3 eventi


    passando
    data inizio: 5 Set
    data fine: 6 set

    dovrei vedere i 3 eventi


    Io ho risolto facendo

    AND ((Date_Start <= $date_end) AND (Date_End >= $date_start))";

    Vi sembra corretto??

    Oppure esiste una soluzione differente?

    Grazie
    Da come avevi spiegato sembrava che ti servissero gli eventi dentro il range, non gli eventi che si svolgono durante il range....

    Comunque sì, è giusto.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Perfetto, quindi intendi dire che è corretta la mia soluzione?

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