Identificar formato de hora SQL

8

Encontré esta representación de una fecha (y hora) en una base de datos SQLite. No lo reconozco como algo estándar, como la marca de tiempo UNIX, ¿alguien puede ayudarme a identificarlo?

498586831.475129 o 497469155.776235

a veces, sin embargo, es solo un número (sin el.).

Algún contexto: espero que el valor sea una fecha (y probablemente también una hora, probablemente el segundo más cercano) que sea posterior a 2007 y no en el futuro.

Más información: El tipo de campo SQLite es TIMESTAMP

Xaser
fuente

Respuestas:

10

Es TIMESTAMPprobable que los valores provengan del código de Apple Core Foundation basado en una época del 1 de enero de 2001 a las 00:00:00 GMT.

Utilidades del tiempo - Core Foundation | Documentación del desarrollador de Apple

Core Foundation mide el tiempo en unidades de segundos. El tipo de datos base es el CFTimeInterval, que mide la diferencia en segundos entre dos veces. Los tiempos fijos, o fechas, están definidos por el CFAbsoluteTimetipo de datos, que mide el intervalo de tiempo entre una fecha particular y la fecha de referencia absoluta del 1 de enero de 2001 a las 00:00:00 GMT.

Wolfram Alpha: 1 de enero de 2001 00:00:00 GMT + 498586831.475129 segundos
Resultado: 4:20:31 GMT | Miércoles 19 de octubre de 2016

Wolfram Alpha: 1 de enero de 2001 00:00:00 GMT + 497469155.776235 segundos
Resultado: 5:52:35 GMT | Jueves 6 de octubre de 2016


Respuesta previa (aún relevante)

Sin más contexto, debe buscar conversiones que tengan sentido.

La parte entera es un número razonable de segundos, y los lugares decimales podrían representar microsegundos.

Opción 1: Época UNIX

Wolfram Alpha: 498586831.475129 segundos desde la época de Unix

Fecha y hora gregoriana correspondiente:

4:20:31 pm UTC | Sábado 19 de octubre de 1985

¿Es razonable una fecha en 1985 para ese registro?

Opción 2: Época alternativa

Wolfram Alpha: hace 498586831.475129 segundos

Resultado:

9:43:46 pm EDT | Domingo 22 de julio de 2001

Quizás, el campo representaba segundos desde el 1 de enero de 2000 o el 1 de enero de 2001.

Opción 3: duración

Wolfram Alpha: 498586831.475129 segundos

Conversiones de unidades:

8.3097805245855 × 10 ^ 6 minutos

138496.342076425 horas

5770.680919851 días

15.799587725555 años gregorianos promedio

¿Es esta cantidad de tiempo relevante para el registro?

EDITAR: con su contexto adicional (de la fecha entre 2007 y el presente), la "Opción 2: Época alternativa" se convierte en la más razonable, y este registro se produce aproximadamente 15.8 años después.

Steven
fuente
De hecho, es de una aplicación de iOS, bien visto :)
Xaser