Maison >base de données >tutoriel mysql >Comment convertir un horodatage Bigint UNIX en DateTime dans SQL Server ?
SQL Server : transformer les horodatages Bigint UNIX en valeurs DateTime
Ce guide détaille la conversion des horodatages bigint UNIX en objets DateTime dans SQL Server. Le processus nécessite une formule pour tenir compte de la disparité temporelle entre les époques UNIX et SQL Server.
La méthode de conversion :
L'instruction SQL suivante effectue efficacement la conversion :
<code class="language-sql">SELECT DATEADD(second, [unixtime], '19700101') FROM [Table];</code>
Comprendre la formule :
DATEADD
ajoute le nombre de secondes spécifié par [unixtime]
(votre horodatage bigint) à l'époque UNIX, donnant l'heure correspondante Valeur DateHeure.L'époque expliquée :
L'époque signifie le nombre de secondes écoulées depuis l'époque UNIX.
Résoudre le problème de l'année 2038 :
La fonction DATEADD
de SQL Server utilise un argument entier pour le nombre de secondes. Les horodatages dépassant 2 147 483 647 secondes (environ 68 ans) entraîneront une erreur de dépassement arithmétique.
Résolution de la limitation de l'année 2038 :
Pour surmonter ce problème, divisez l'horodatage en années et secondes restantes, en utilisant deux DATEADD
opérations distinctes. Cette approche étendue gère les horodatages au-delà de l'année 2038. (Un exemple spécifique de cette approche en plusieurs étapes devrait être ajouté ici si vous le souhaitez, montrant la répartition en années et secondes restantes.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!