Je suppose que vous avez fait un vidage de données sous forme d'instructions d'insertion, et que vous (ou quiconque google ceci) essayez de comprendre la date et l'heure, ou de les traduire pour une utilisation ailleurs (par exemple: pour convertir en insertions MySQL). C'est en fait facile dans n'importe quel langage de programmation.
Travaillons avec ceci:
CAST(0x0000A61300B1F1EB AS DateTime)
Cette représentation hexadécimale est en fait deux éléments de données distincts ... Date et heure. Les quatre premiers octets sont la date, les quatre seconds sont l'heure.
- La date est 0x0000A613
- L'heure est 0x00B1F1EB
Convertissez les deux segments en nombres entiers en utilisant le langage de programmation de votre choix (c'est une conversion hexadécimale directe en entier, qui est prise en charge dans tous les langages de programmation modernes, donc, je ne gaspillerai pas d'espace avec du code qui peut ou non être le langage de programmation vous travaillez).
- La date de 0x0000A613 devient 42515
- L'heure de 0x00B1F1EB devient 11661803
Maintenant, que faire avec ces entiers:
Date
La date est depuis le 01/01/1900 et est représentée sous forme de jours. Donc, ajoutez 42515 jours au 01/01/1900, et votre résultat est le 27/05/2016.
Temps
Le temps est un peu plus complexe. Prenez cet INT et procédez comme suit pour obtenir votre temps en microsecondes depuis minuit (pseudocode):
TimeINT=Hex2Int(HexTime)
MicrosecondsTime = TimeINT*10000/3
À partir de là, utilisez les appels de fonction préférés de votre langue pour traduire les microsecondes (38872676666,7 µs dans l'exemple ci-dessus) en temps.
Le résultat serait 10: 47: 52.677