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

    Query intervallo date con giorno, mese e anno separati

    Ciao,

    ho questo piccolo problema che mi stà facendo impazzire.
    In una tabella ho una data divisa in 3 campi, in un campo c'è il girono, in un campo c'è il mese e in uno c'è l'anno.

    Dovrei fare una ricera nella tabella per intervallo di date ma non posso utilizzare le classiche funzoni delle date. Perchè ho i 3 campi separati (campoGiorno, campoMese, campoAnno)

    Ho provato con

    giornoDa >= campoGiorno AND meseDa >= campoMese AND annoDa >= campoAnno AND giornoA <= campoGiorno AND meseA <=campoMese AND annoA <= campoAnno

    Ma mi seleziona un intervallo sbagliato.

    Come posso fare?

  2. #2
    Ho già trovato la soluzione al problema.

    La posto:

    (CampoAnno = AnnoDa AND CampoMese = MeseDa AND CampoGiorno >= GiornoDa)
    OR
    (CampoAnno = AnnoA AND CampoMese = MeseA AND CampoGiorno <= GiornoA)
    OR
    (CampoAnno = AnnoDa AND CampoAnno = AnnoA AND CampoMese > MeseDa AND CampoMese < MeseA)
    OR
    (CampoMese > MeseDa AND CampoAnno < AnnoA AND AnnoDa <> AnnoA)
    OR
    (CampoMese < MeseA AND CampoAnno > AnnoDa AND AnnoDa <> AnnoA)

  3. #3
    Retifico:
    La soluzione che ho postato sopra non funziona.
    Quella che posto di seguito funziona benissimo:

    (
    (AnnoDa = AnnoA AND (
    (MeseDa = MeseA AND CampoAnno = AnnoDa AND CampoMese = MeseDa AND CampoGiorno >= GiornoDa AND CampoGiorno <= GiornoA)
    OR (MeseDa <> MeseA AND CampoAnno = AnnoDa AND (
    (
    CampoMese > MeseDa AND CampoMese < MeseA)
    OR (CampoMese = MeseDa AND CampoGiorno >= GiornoDa)
    OR (CampoMese = MeseA AND CampoGiorno <= GiornoA)
    )
    )
    )
    OR (AnnoDa <> AnnoA AND (
    (
    CampoAnno = AnnoDa AND CampoMese = MeseDa AND CampoGiorno >= GiornoDa)
    OR (CampoAnno = AnnoDa AND CampoMese > MeseDa)
    OR (CampoAnno > AnnoDa AND CampoAnno < AnnoA)
    OR (CampoAnno = AnnoA AND CampoMese < MeseA)
    OR (CampoAnno = AnnoA AND CampoMese = MeseA AND CampoGiorno <= GiornoA)
    )
    )
    )
    )

    Dove CampoAnno, CampoMese e CampoGiorno sono i campi in tabella; AnnoDa, MeseDa, GiornoDa sono le variabili della data di partenza e AnnoA, MeseA, GiornoA sono le variabili della data di arrivo

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.