+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Intervallo fra due date

  1. #1
    L'avatar di kmsta
    kmsta non è in linea Scolaretto
    Post
    64

    Intervallo fra due date

    Salve a tutti e vi auguro un Buon Natale e Felice Anno nuovo. Ho un semplice problema che mi stà facendo scervellare.
    Ho una tb Dipendenti dove vado al inserire "DataInizioRapporto" e "dataFineRapporto". Vorrei creare una query dove inserendo Dal Al mi vada ad estrapolare i dipendenti es:
    Mario Rossi Inizio 01/12/12 Fine 30/03/13
    Mario Bianchi Inizio 05/01/13 Fine 30/05/13
    Pinko Pall Inizio 01/12/12 Fine 28/02/13

    Quindi se io vado ad imput Dal 01/03/13 Al 30/03/13 mi dovrebbe visualizzare solo Rossi e Bianchi oppure
    se io vado ad imput Dal 01/01/13 Al 04/01/13 mi dovrebbe visualizzare solo Rossi e Pall

    Non so da dove iniziare
    Grazie a Tutti

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,091
    Leggi questo Articolo per capire la singolarità dei Campi data
    [VBA-JET] Tutorial uso campi data
    Quindi puoi usare Between ben docuementato per definire i limiti esterni della ricerca...In sostanza così
    codice:
    SELECT * FROM T1 WHERE [CampoData] Between [RiferimentoDal] And [RiferimentoAl]
    Ovviamente i 2 Riferimenti li devi applicare come definito nell'articolo sopracitato.
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  3. #3
    L'avatar di kmsta
    kmsta non è in linea Scolaretto
    Post
    64
    Grazie Alex, ho letto l'articolo da te indicato ed ho provato ad applicarli, ma il mio problema sorge quando devo valutare il Between fra due date in due campi diversi.
    Sicuramente ci sarà qualche passaggio che non riesco a comprendere.
    Ciao.

  4. #4
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,091
    Prova a postare il tuo predicato SQL e vediam... così come hai detto non possiamo fare nulla non avendo indizzi.
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  5. #5
    L'avatar di kmsta
    kmsta non è in linea Scolaretto
    Post
    64
    Ciao,
    non riuscendo a fare quello che mi hai consigliato ho cercato di costruire qualcosa da me anche se effettivamente è una cosa "troglodita" ma ugualmente non mi da i risultati che spero. infatti se richiedo la data dal 01/01/13 al 30/01/13 dovrebbe darmi tutti e tre i risultati ma niente.
    Questo è quello che ho fatto:
    SELECT dipendenti.*, dipendenti.DataInizio, *
    FROM dipendenti
    WHERE (((dipendenti.DataInizio)>=[Forms]![ControlloDate]![Data1]) AND ((dipendenti.DataFine)<=[Forms]![ControlloDate]![Data2]));
    Grazie. Ciao

  6. #6
    pier42 non è in linea Scolaretto
    Post
    56
    aiuto da principiante: apri la query in visualizzazione struttura- sotto il campo data inizio in corrispondenza di criteri scrivi [data inizio] ; sotto data fine in corrispndenza di criteri
    scrivi [data fine]
    quando esegui la query ti verrà richiesto di inserire la data inizio e la data fine.vedi se funziona

  7. #7
    L'avatar di kmsta
    kmsta non è in linea Scolaretto
    Post
    64
    Grazie Pier42, ma la tua soluzione è tale e quale la mia.
    Anche a me funziona ma non come dovrebbe. Cioè se nell'intervallo che inserisco vi sono delle date (inizio o fine) va bene ma se le date che inserisco sono nell'intervallo datainizio e datafine non funziona.

  8. #8
    L'avatar di gibra
    gibra ora è in linea Amanuense
    Luogo
    Breganze (VI)
    Post
    6,072
    Quote Originariamente inviato da kmsta Visualizza il messaggio
    Ciao,
    non riuscendo a fare quello che mi hai consigliato ho cercato di costruire qualcosa da me anche se effettivamente è una cosa "troglodita" ma ugualmente non mi da i risultati che spero. infatti se richiedo la data dal 01/01/13 al 30/01/13 dovrebbe darmi tutti e tre i risultati ma niente.
    Questo è quello che ho fatto:
    SELECT dipendenti.*, dipendenti.DataInizio, *
    FROM dipendenti
    WHERE (((dipendenti.DataInizio)>=[Forms]![ControlloDate]![Data1]) AND ((dipendenti.DataFine)<=[Forms]![ControlloDate]![Data2]));
    Grazie. Ciao
    In un database di Access la data 'interna' è sempre in formato americano: MM/DD/YY, per cui gli enunciati SQL la data deve essere formattata in tale formato.
    Non so come sono le tue date nei campi, ma immagino che siano nel formato italiano: DD/MM/YYYY


  9. #9
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,091
    Come indicato al mio Post #2 ho linkato l'articolo di come JET interpreta le date e di come inviarle di conseguenza...
    E' Natale...
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi