2010-06-30 4 views
2

J'ai accès à la base de données d'une application tierce et je vois un champ appelé "date" qui stocke les valeurs date/heure sous forme de nombres à virgule flottante, mais je ne sais pas comment ce nombre à virgule est mappé à une date /temps. Il n'y a pas de documentation pour cette base de données.Date/heure stockée sous forme de virgule flottante, quel algorithme est utilisé?

Voici quelques exemples de données:

date-field  actual-date-time 
253507382.168744 1/12/09 6:43 PM PST 
253507480.136126 1/12/09 6:44 PM PST 
253508091.838982 1/12/09 6:54 PM PST 
256703604.015055 2/18/09 6:33 PM PST 
256704413.484674 2/18/09 6:46 PM PST 

Note: Je devais entrer ces valeurs manuellement donc il y a une petite chance, ils peuvent être un peu. Si vous souhaitez voir plus de données, faites le moi savoir et j'ajouterai plus. J'espere que quelqu'un est familier avec les dates de stockage dans ce format et peut me faire savoir comment obtenir une date/heure donne un nombre en virgule flottante.

Répondre

2

Si vous observez la variation des nombres sur les intervalles de 10 et 13 minutes, vous verrez qu'il est d'environ 60. Par conséquent, je conclus qu'il s'agit d'un nombre de le nombre de secondes à partir d'une date de base. Je pense que la date de base est le 1/1/2000 ou le 01/01/2001. La date de base semble être 01/01/2001, et l'heure semble être ajustée aussi - c'est probablement UTC avec votre décalage horaire local ajouté.

1

Si vous soustrayez l'un des deux points, vous verrez que les valeurs représentent le nombre de secondes, avec une précision de l'ordre de la microseconde. Il devrait être facile de déterminer la date de base où l'horloge a "démarré". Sur Unix et les systèmes connexes, c'est le 1er janvier 1970.

0

Les horodatages sont 'le nombre de secondes écoulées depuis 00h00 le 1er janvier 2001'. Ce n'est pas un format de date commun, mais au moins, il devrait être facile de travailler avec maintenant, vous savez ce que cela représente!

Questions connexes