Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Data decimale in mysql

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    21

    Data decimale in mysql

    Salve a tutti!
    Sto lavorando su un db mysql condiviso con un'applicazione software, quindi mi trovo ad utilizzare parecchi campi e tabelle di cui non posso modificare la struttura. Mi sono imbattuta in un campo "lastAccess", quindi una data o un tempo, formattato come decimal(20,0) e non so come convertirlo in una data leggibile in PHP.
    Ho cercato in rete e qui nei forum ma non ho trovato indicazioni in proposito, qualcuno di voi saprebbe illuminarmi?

  2. #2
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    potresti postare un esempio del formato data presente nel campo lastAccess?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    21
    Salve mariox

    Ecco alcune colonne del campo "lastAccess":

    1198968481312
    1202068907781
    1202074923328
    1202154940000
    1203261607296
    1203535338406
    1203538533218
    1203550506578
    1203597985015
    1203623107984

    e il formato del campo:

    `lastAccess` decimal(20,0) default NULL

  4. #4
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    fai la connessione al db, selezioni i dati che ti interessano e poi utilizzi la funzione di libreria gmdate:

    esempio:
    Codice PHP:

    $UnixTime 
    1203623107984;

    echo 
    $sGMTMySqlString gmdate("Y-m-d H:i:s"$UnixTime); 

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    21
    Accade qualcosa di strano: le date vengono effettivamente formattate, ma ho forti dubbi che corrispondano alla realtà!
    Per esempio, l'ultima della colonna è un mio accesso effettuato stasera, eppure indica il 2002! :master:

    1991-04-04 11:26:56
    1953-08-26 17:00:48
    2000-01-12 15:18:58
    2001-11-30 17:42:15
    1991-04-25 18:55:28
    1953-06-18 02:01:41
    1956-03-09 19:52:00
    2002-09-17 12:18:24

    Questo è il codice che mostra l'elenco con la funzione gmdate.

    Codice PHP:
    echo gmdate("Y-m-d H:i:s"$status['lastAccess']); 

  6. #6
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    è molto strano :master:
    tu con che funzioni inserisci la data dell'ultimo accesso?

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Sei sicura che quei numeri siano di 13 cifre?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    21
    Quei numeri vengono inseriti automaticamente da un software che poggia sul db mysql, e memorizza buffamente le date come decimal(20,0). Ho provato a chiamare altri record di date e hanno tutte lo stesso problema: sono indietro di parecchio tempo rispetto a quanto dovrebbero.

    Il punto è che non sapendo con che criterio viene memorizzato il numero nel db, nemmeno ho idea di come formattarlo. Magari esiste qualche funzione semi-sconosciuta per lavorare le date decimali...

  9. #9
    anche a me spesso mi è toccato combattere con DB di software da integrare con applicativi web: il mio consiglio è quello di analizzare comportamento e situazioni!

    Quel decimal 20 può stare a significare un sacco di roba!

    Per esempio, in questo caso, non sono secondi ma i millisecondi trascorsi dal 1970 ... un po come uno unix timestamp in millisecondi piuttosto che in secondi

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    21
    Grazie daniele_dll,
    proverò a elaborarli di conseguenza e a vedere che succede!

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.