Visualizzazione risultati 1 fino 7 di 7

Discussione: Tipo TIME: salvare i decimi centesimi di secondi in phpmyadmin (mysql)

  1. #1
    Guest

    Predefinito Tipo TIME: salvare i decimi centesimi di secondi in phpmyadmin (mysql)

    Salve a tutti, ma com'è possibile che non riesca a inserire i decimi e centesimi di secondi?
    Avrei bisogno di salvare il tempo in sql (tempo di nuoto composto anche dei decimi e centesimi di secondi) ad esempio: 27''98 lo scrivo in questa maniera: 00:00:27.2800 ma niente, li tronca sempre escludendo i sottomultipli di secondi.
    C'è qualcosa che mi sfugge? O sbaglio a scrivere?
    Ho provato a usare anche datatime, ma non va.. tronca sempre e comunque, devo settare qualche altra opzione per evitare che tronchi i sottomultipli dei secondi?

    Grazie a chi mi aiuterà.

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    I campi DATETIME e TIMESTAMP servirebbero a memorizzare informazioni che sono vincolate ad un preciso (al secondo) riferimento temporale. In altre parole, il momento esatto al quale si riferisce l'informazione.

    Nel tuo caso, invece, ti serve registrare la durata di un evento, ma non quando questo è avvenuto: potresti quindi considerare l'utilizzo di un campo numerico di tipo DECIMAL(...,2) (memorizzerai i secondi, se ti servono minuti e ore con qualche calcolo in PHP li trovi).

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da dementialsite Visualizza messaggio
    I campi DATETIME e TIMESTAMP servirebbero a memorizzare informazioni che sono vincolate ad un preciso (al secondo) riferimento temporale. In altre parole, il momento esatto al quale si riferisce l'informazione.

    Nel tuo caso, invece, ti serve registrare la durata di un evento, ma non quando questo è avvenuto: potresti quindi considerare l'utilizzo di un campo numerico di tipo DECIMAL(...,2) (memorizzerai i secondi, se ti servono minuti e ore con qualche calcolo in PHP li trovi).

    Stammi bene...
    Grazie per avermi risposto.

    Praticamente non esiste il modo di salvare i sottomultipli dei secondi???
    So che su sql server si può fare e ci lavoro sopra, che salva esattamente così: 00:00:00.mmm
    mentre in questo caso su altervista non si può fare?

    Avevo già pensato anche al DECIMAL ma volevo proprio evitarlo. Registrare il tempo così come sta, senza fare vari calcoli.
    Ultima modifica di workprogramming : 10-07-2013 alle ore 12.55.13

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Purtroppo è proprio MySQL che non lo consente (cfr. http://dev.mysql.com/doc/refman/5.0/...l-seconds.html), non è che sia una limitazione di AV...

    Tieni inoltre presente che, anche se ci si riuscisse, comunque dovresti fare un po' di operazioni con PHP anche solo per formattare il dato richiesto (a meno che tu non sia davvero certo del formato di uscita da MySQL): a questo punto, il calcolo dei minuti non è così disarmante come credi...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da dementialsite Visualizza messaggio
    Purtroppo è proprio MySQL che non lo consente (cfr. http://dev.mysql.com/doc/refman/5.0/...l-seconds.html), non è che sia una limitazione di AV...

    Tieni inoltre presente che, anche se ci si riuscisse, comunque dovresti fare un po' di operazioni con PHP anche solo per formattare il dato richiesto (a meno che tu non sia davvero certo del formato di uscita da MySQL): a questo punto, il calcolo dei minuti non è così disarmante come credi...

    Stammi bene...
    Cosa proponi di preciso?

    Io ho fatto ovviamente le tabelle atleta, specialita, tempo e gara e altre varie.
    Consideriamo ad esempio 200SL 2'14''38 dove 38 sarebbero i multipli dei secondi.
    Quindi il numero preso dalla form è: 214.38, potrei usare intval() per estrarre la parte decimale e inserire correttamente in output. Che ne pensi?

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,791

    Predefinito

    Ovviamente puoi salvare i float, oppure salvare anche stringhe. Quindi puoi salvare la stringa:
    Codice:
    200SL 2'14''38
    Ovviamente, i float occuperanno meno spazio.

    Ciao!

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Ovviamente puoi salvare i float, oppure salvare anche stringhe. Quindi puoi salvare la stringa:
    Codice:
    200SL 2'14''38
    Ovviamente, i float occuperanno meno spazio.

    Ciao!
    Eh no, c'è già la tabella specialità (sono 18). Se dovessi fare a stringa, sarebbe un casino perchè poi quando devo fare le query, devono essere veloci senza fare eventuali parser.
    Ottima proposta dei float.

    Mi piacerebbe anche mostrare in output in questa modalità -> 02'14''38. Mi servono solo minuti, secondi e sottomultipli. quindi float andrà benissimo. con solo massimo 4 cifre più 2 decimali.
    E poi uso intval() per estrarre la parte decimale e poi il resto vabbè è più semplice. Ci lavoro un pò sopra, poi posterò la soluzione ;)

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •