Ho una tabella con 2 campi :
ID (numerico)
IN1 (data/ora)
In sostanza cosi :
ID IN1
156154 02/10/2009 10.20.58
156239 02/10/2009 14.25.45
156240 02/10/2009 14.25.58
156244 02/10/2009 14.47.08
156247 02/10/2009 14.57.46
156494 05/10/2009 9.35.39
156495 05/10/2009 9.39.10
156499 05/10/2009 9.45.42
156667 05/10/2009 16.37.52
156669 05/10/2009 16.44.32
156670 05/10/2009 16.47.27
156671 05/10/2009 16.52.34
156672 05/10/2009 16.55.27
156802 06/10/2009 10.30.28
156803 06/10/2009 10.31.11
156804 06/10/2009 10.36.25
156807 06/10/2009 10.42.24
155887 01/10/2009 0.21.58
155888 01/10/2009 0.56.46
155893 01/10/2009 8.22.48
Vorrei poter contare il numero di records in un preciso arco
temporale.
Cioè :
numero records tra le ore 10.00 e le ore 17.00 = tot (a prescindere
dalla data associata, in pratica solo ora)
Ho provato a convertitre il campo IN1 in formato ora estesa ed
impostando il criterio :
between 10.00 AND 17.00 , ma non funziona.
Grazie infinite per l'aiuto.
Ciao
devi usare la funzione DatePart che ti consente di estrarre i vari
elementi di data/ora.
Alberto
grazie per la risposta.
Ma nello specifico come dovrei fare ?
Ma scusa poi DatePart permette solo di separare la data dall'ora ,
giusto?
Ciao,
no, puoi scegliere qualsiasi elemento:
yyyy Anno
q Trimestre
m Mese
y Giorno dell’anno
d Giorno
w Giorno della settimana
ww Settimana
h Ora
n Minuti
s Secondi
quindi:
datepart("h",TuaData) between 10 and 17
OK ?
Alberto
Grazie , funziona ma mettendo il ;(punto e virgola) tra "h"e
campodata.
Mi chiedevo se fosse possiible raffinare il risultato prodotto dalla
funzione DatePart.
In pratica :
- se fosse possibile impostare il criterio della query affichè possa
restituire anche frazioni di ora.
Cioè in pratica DatePart restituisce l'intero dell'ora (se ora =17:25
-->DatePart restituisce :17),
è possibile agire sul livello di precisione del risultato ?
In pratica se voglio visualizzare i records associati all'arco
temporale : 17:15 - 19:25 , come potrei fare?
grazie molte.
Ciao
DatePart vuole il ';' nelle query e nei controlli. Se lo usi nel
codice vuole ',' (come per tutte le funzioni).
Ciò premesso, se guardi l'help della funzione, vedi che puoi
identificare i minuti con "n".
Però devi fare una query tipo questa:
SELECT Count(Turni.Turno) AS ConteggioDiTurno
FROM Turni
WHERE (((DatePart("h",[Data]) & "." & DatePart("n",[Data])) Between
"12.10" And "12.20"));
perchè l'argomento filtro sarebbe troppo complicato per la funzione
Dcount
"12.10" può diventare [Da orario hh.mm]
"12.20" può diventare [A orario hh.mm]
Puoi leggere il risultato della query con la funzione Dlookup.
Chiaro ?
Alberto
Funziona perfettamente...
Sei un genio!
Grazie infinite.