Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316

    aiuto query per calcolo intervallo tempo

    Ciao,

    poniamo che io abbia una tabella in cui vengano registrati tutti gli accessi ad una stanza della mia casa, con relativi orari.

    la tabella è formata dai seguenti campi:

    id(autoincrement) | time | tipo (ingresso/uscita) | codice personale

    esempio (1 = ingresso, 0 = uscita):

    1 | 2016-11-01 12:00:00 | 1 | 000
    2 | 2016-11-01 13:23:02 | 0 | 000
    3 | 2016-11-01 16:10:00 | 1 | 000
    4 | 2016-11-01 16:45:21 | 0 | 000

    ora, dato un codice personale vorrei essere in grado di capire quanto tempo una persona sia rimasta dentro alla stanza. Non riesco a capire come calcolare la differenza temporale fra ingressi e uscite a "coppie" cioè forzando il fatto che ad ogni ingresso corrisponda un'uscita (non voglio sapere il tempo che passe fra un'uscita e il successivo ingresso..!)

    sono veramente in alto mare..qualche consiglio?

    grazie

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    E se due persone entrano, la seconda dopo un paio di minuti e che escono insieme ?

    Edit. Pensavo che il codice fosse il codice della stanza.

    Comunque fossi in te avrei un record con l'ora di entrata e l'ora di uscita.
    Ultima modifica di badaze; 06-11-2016 a 11:04
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    spero che ognuna abbia un codice personale diverso!

  4. #4
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    ciao, sì, il codice è personale. Il sistema è un po' complicato. Ho detto che è una stanza per semplificare il tutto, in realtà è una scatola. Non volevo entrare nei dettagli per non dilungarmi troppo, comunque ho già implementato diversi scenari (può essere aperto solo da 1 codice per volta, quindi se c'è registrata un'entrata per il codice 101, solo quel codice la può aprire e registrare la sua uscita - a quel punto un altro codice viene accettato).
    @badaze, intendi una tabella tipo:

    id | time (entrata) | time (uscita) | codice ?

    grazie

    edit: nella tabella vengono registrati anche altri messaggi relativi alla scatola che non prevedono entrata/uscita ma occorrono a intervalli temporali in un preciso momento. per questo non avevo implementato un record con 2 campi per registrare il time di un evento. però effettivamente per questi eventi potrei registrare lo stesso identico time sia per entrata che uscita..
    Ultima modifica di leaf; 06-11-2016 a 13:23

  5. #5
    se tu riuscissi a implementare un ID di ingresso nella scatola (es: entro, mi assegni un ID; esco, chiudo l'ID che mi hai assegnato) riusciresti a cavartela facilmente con una DateDiff sul singolo ID di ingresso.

  6. #6
    (e a quel punto il conteggio del tempo che si resta nella stanza si fa al volo...)

  7. #7
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    ho il campo "tipo" che in base al valore indica un'ingresso o un'uscita..

  8. #8
    non UN ingresso, ma QUELL'ingresso

  9. #9
    oppure, se sei sicuro al 100% che per un codice personale c'è UN e UN SOLO ingresso in quella scatola, quando esci prendi l'ULTIMO ingresso (o l'UNICO ingresso non ancora accoppiato) e a) calcoli la differenza di tempo tra adesso e l'ingresso, e segnali l'ingresso come accoppiato (cioè con una uscita)

  10. #10
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    Quote Originariamente inviata da optime Visualizza il messaggio
    oppure, se sei sicuro al 100% che per un codice personale c'è UN e UN SOLO ingresso in quella scatola, quando esci prendi l'ULTIMO ingresso (o l'UNICO ingresso non ancora accoppiato) e a) calcoli la differenza di tempo tra adesso e l'ingresso, e segnali l'ingresso come accoppiato (cioè con una uscita)
    mm..no..un codice personale indica 1 persona che può aprire/chiudere la scatola quando gli pare..credo di aver capito che la soluzione migliore sia avere due campi temporali (ingresso/uscita). all'ingresso, il campo ingresso viene riempito mentre quello uscita resta vuoto. All'uscita il campo uscita viene riempit oa sua volta. A questo punto mi basta controllare, per ogni codice personale presente nella tabella, la differenza di tempo fra ingresso e uscita e sommare il tutto..

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.