Discussione:
Query con parametri data
(troppo vecchio per rispondere)
unknown
2007-07-15 23:25:58 UTC
Permalink
Ragazzi son nuovo, ma proprio nuovo nuovo alla programmazione e avrei bisogno di aiuto per un problema che sicuramente a voi sembrerà banale ma a me sta a fa impazzi. Come si crea una query con parametri che mi stampi dei record compresi tra due date?
per un riepilogo ad esempio , mettiamo il caso che la mia query debba estrapolare una sequenza di date comprese tra il 1 gennaio 2007 e il 4 marzo 2007... finchè la data è una nessun problema, ma in nessun manuale ho trovato come gestire l'intervallo di dati. Ho provato con between And ma a quanto pare non conosco la sintassi corretta; invece ho bisogno di query che recuperino non una singola data ma gruppi di date comprese fra una data di inizio e una di fine. Spero di essere stato chiaro. Grazie in anticipo per l'aiuto
Gianninogatto
----------------------------------------------
Messaggio inviato da http://www.freeaspx.it
FreeAspx.it ASP & .NET Community
Marco Papo
2007-07-16 06:36:22 UTC
Permalink
Post by unknown
Ragazzi son nuovo, ma proprio nuovo nuovo alla programmazione e avrei
bisogno di aiuto per un problema che sicuramente a voi sembrerà banale ma
a me sta a fa impazzi. Come si crea una query con parametri che mi stampi
dei record compresi tra due date?
per un riepilogo ad esempio , mettiamo il caso che la mia query debba
estrapolare una sequenza di date comprese tra il 1 gennaio 2007 e il 4
marzo 2007... finchè la data è una nessun problema, ma in nessun manuale
ho trovato come gestire l'intervallo di dati. Ho provato con between And
ma a quanto pare non conosco la sintassi corretta; invece ho bisogno di
query che recuperino non una singola data ma gruppi di date comprese fra
una data di inizio e una di fine. Spero di essere stato chiaro. Grazie in
anticipo per l'aiuto
Gianninogatto
----------------------------------------------
Messaggio inviato da http://www.freeaspx.it
FreeAspx.it ASP & .NET Community
Ciao
Post by unknown
=#2007-01-01# and <=#2007-03-04
Come noterai il formato della data è anno-mese-giorno. A tutti i DB è meglio
passare le date in questo modo perchè sei sicuro che le interpretano
corrette (formatto ISO).

Tu se devi passarle come parametri le prendi nel formatto normale e poi le
converti nel formato ISO con la funzione FORMAT

DataISO = Format(Data, "\#yyyy\-mm\-dd\#")

Ciao
Roberto dalla campagna
2007-07-16 14:35:36 UTC
Permalink
Post by unknown
Ragazzi son nuovo, ma proprio nuovo nuovo alla programmazione e avrei
bisogno di aiuto per un problema che sicuramente a voi sembrerà banale ma
a me sta a fa impazzi. Come si crea una
query con parametri che mi stampi dei record compresi tra due date?
per un riepilogo ad esempio , mettiamo il caso che la mia query debba
estrapolare una sequenza di date comprese tra il 1 gennaio 2007 e il 4
marzo 2007... finchè la data è una nessun problema, >ma in nessun manuale
ho trovato come gestire l'intervallo di dati. Ho provato con between And
ma a quanto pare non conosco la sintassi corretta; invece ho bisogno di
query che recuperino non una >singola data ma gruppi di date comprese fra
una data di inizio e una di fine. Spero di essere stato chiaro.
In effetti per noi non americani che usiamo le date nel formato gg/mm/aaaa
(loro invece le usano nel formato mm/dd/yyyy), esiste qualche problema in
quanto il linguaggi VBA e SQL, nati in america, per le date conoscono
comunque SOLO quello standard e pertando noi, quando confrontiamo delle date
siamo costretti a forzare il formato del secondo termine di paragone: a tale
scopo vai sul Sito Comune (link qui sotto) e nella Sezione General leggi la
FAQ di Federico Luciani intitolata "2.3 Problemi con le date nelle stringhe
SQL.".
Resta il fatto che quando usi il generatore di espressione o nella struttura
delle queries non hai alcun problema a scrivere il confronto tra date in
quanto pensa Access a normalizzarne i formati; insomma, nel tuo caso é
sufficiente nella struttura di una query nei criteri di un campo Data/ora
scrivere:

Between DataInizio And DataFine

per selezionare tutti i record per i quali la data è compresa tra DataIizio
e DataFine.
Come ho invece detto sopra la musica cambia di molto se il confronto tra due
o tre date (tramite una Beyween ... And o una If) lo effettui in VBA o in
SQL.

Insomma puoi evitare di mettere in pratica il consiglio di Marco Papo a
condizione che, quando usi VBA e SQL, ti ricordi che normalmente usi la
versione italiana di Access e fai il settaggio delle Impostazioni
internazionali di Windows in italiano standard, ovvero stabilisci che il
formato delle date sia gg/mm/aaaa e non mm/dd/yyyy come i due linguaggi di
cui sopra presuppongono.
Post by unknown
Grazie in anticipo per l'aiuto
Prego
Post by unknown
Gianninogatto
--
Roberto
-----------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
-----------------------------------------------
unknown
2007-07-17 19:13:59 UTC
Permalink
Grazie mille sei stato davvero preziosissimo.
Ora va tutto a meraviglia, o almeno per e mie esigenze

:-)
----------------------------------------------
Messaggio inviato da http://www.freeaspx.it
FreeAspx.it ASP & .NET Community
unknown
2007-07-17 19:16:04 UTC
Permalink
Grazie a buon rendere...
----------------------------------------------
Messaggio inviato da http://www.freeaspx.it
FreeAspx.it ASP & .NET Community

Loading...