Je suppose que vous avez effectué un vidage de données sous forme d'instructions d'insertion et que vous (ou toute personne qui consulte Google à ce sujet) essayez de déterminer la date et l'heure ou de les traduire pour les utiliser ailleurs (par exemple, pour les convertir en insertions MySQL). C'est en fait facile dans n'importe quel langage de programmation.
Travaillons avec ça :
CAST(0x0000A61300B1F1EB AS DateTime)
Cette représentation hexagonale est en fait deux éléments de données distincts... La date et l'heure. Les quatre premiers octets sont la date, les quatre autres 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 (il s'agit d'une conversion directe d'hexagone en nombre entier, qui est prise en charge par tous les langages de programmation modernes, je ne vais donc pas gaspiller de l'espace avec du code qui peut ou non correspondre au langage de programmation que vous utilisez).
- La date de 0x0000A613 devient 42515
- Le temps de 0x00B1F1EB devient 11661803
Maintenant, que faire de ces entiers :
Date
La date est depuis le 01/01/1900, et est représentée en jours. Ainsi, ajoutez 42 515 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 faites ce qui 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