Maison >base de données >tutoriel mysql >Comment convertir un horodatage Bigint UNIX en DateTime dans SQL Server ?

Comment convertir un horodatage Bigint UNIX en DateTime dans SQL Server ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-17 16:34:11524parcourir

How to Convert a Bigint UNIX Timestamp to DateTime in 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 :

  • '19700101' : Cela représente l'époque UNIX, le point de départ des horodatages UNIX (1er janvier 1970, 00:00:00 UTC).
  • DATEADD(second, [unixtime], '19700101'): La fonction 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn