Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Ricerca tra due date

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687

    Ricerca tra due date

    Allora so di rischiare la vita con questa domanda perchè se n'è parlato nelle sue varianti ma nn ne vengo a capo...quindi oso...

    in un db mysql registro quando dei posti barca vengono occupati... da una data iniziale ad una finale.

    a questo punto quando faccio una ricerca per vedere la disponibilità in un certo intervallo inserendo nel form ricerca una data di inizio ed una di fine faccio:

    es posto barca occupato nel db
    dal=26/11/2012
    al=05/12/2012

    sql= "SELECT * FROM tbposti where postobarca ='"&postobarca&"' and dal<='"&tra&"' and al>='"&finox&"' '"

    ma se ricerco per dire tra=21/11/2012 e finox=09/12/2012 risulta libero....

    come devo fare? nn insultatemi please

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Come fa a dartelo libero? dal non e' < del 21/11 e al non e' > del 9/12 ...

    Ma con che formato sono registrate le date?
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687
    eh...nn lo so...il formato della data è AAAA-MM-GG ed il database mysql...campo data ovviamente

    se stampo con response write la sql è

    SELECT * FROM tbposti where postobarca ='A41' and dal<='2012-11-21' and al>='2012-12-09'

    me lo da occupato solo se data iniziale e finale coincidono con quanto trovato nel db...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687
    facendo due prove...per il campo DAL posso dargli qualsiasi data per la ricerca che nn gliene può fregar di meno... dà sempre libero purche per il campo AL la data che immetto per la ricerca sia superiore al 5/12/2012.... al contrario se per il campo AL cerco una data inferiore al 5 dà effettivamente occupato...

  5. #5
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    Originariamente inviato da nikasil
    SELECT * FROM tbposti where postobarca ='A41' and dal<='2012-11-21' and al>='2012-12-09'

    me lo da occupato solo se data iniziale e finale coincidono con quanto trovato nel db...
    separa maggio e minore dal nome del campo: dal <= e al >=


    edit: fai la ricerca con lo stesso formato data di come è scritto

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687
    ciao, ho separato come mi hai suggerito ma nn cambia nulla....

    per il formato data quando faccio una ricerca inserisco 21/11/2012 ma ovviamente converto in 2012-11-21 prima di sql come si vede infatti dal response write.......può centrare mica il tipo di campo? avevo messo DATETIME ma anche con DATE è uguale...


  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687
    up

  8. #8
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    stavo per suggerirti di usare OR ma ti darebbe troppi risultati
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687
    ma mettere due between uno per DAL ed uno per AL?

  10. #10
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    anche se dici che "ovviamente converti in 2012-11-21"

    prova da impostare il formato data
    http://www.w3schools.com/sql/sql_func_format.asp

    così:
    codice:
    SELECT * FROM tbposti where postobarca ='A41' and dal <= FORMAT(dal,'YYYY-MM-DD') and al >= FORMAT(al,'YYYY-MM-DD')
    e comunque accertati di questa conversione

    dal=26/11/2012 >>> 2012-11-26
    al=05/12/2012 >>> 2012-12-05

    sei sicuro sia l'interrogazione giusta da fare?
    che succede se A41 è impegnato dal 2012-11-30 al 2012-12-05 ?
    secondo me risulta libero perché gli chiedi se è impegnato in un periodo differente

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.