Convertire MYSQL Timestamp a time_t
Domanda
Sto scrivendo un programma multi-threaded che ha bisogno di essere in grado di controllare se una fila richiede l'aggiornamento e agire di conseguenza.
Ho avuto problemi con il costruito nel funzioni di data / ora di MySql e così decisi di conservare solo il timestamp "lastUpdate" come un intero nella tabella. Tuttavia, sto avendo problemi di conversione di questo timestamp per time_t in modo che possa utilizzare le funzioni di tempo con esso.
Ogni aiuto è molto apprezzato.
Soluzione
Il MySql timestamp tipo di dati può essere memorizzato come numero in uno YYYYMMDDHHMMSS, AAMMGGHHMMSS, AAAAMMGG, o in formato AAMMGG.
Nei sistemi Unix e POSIX-compliant, time_t è tipicamente un numero intero che rappresenta il numero di secondi dall'inizio della Unix dell'epoca:. mezzanotte UTC del 1 Gennaio 1970
In MySQL è possibile utilizzare il UNIX_TIMESTAMP () e FROM_UNIXTIME () funzioni convertono tra i valori timestamp e valori timestamp Unix.
Query Esempio: SELECT Unix_Timestamp(Date_Entered) FROM Foo;
Altri suggerimenti
Prova FROM_UNIXTIME e TO_UNIXTIME e lasciare le date come date nel database.