Heim > Datenbank > MySQL-Tutorial > Wie konvertiere ich einen Bigint-UNIX-Zeitstempel in DateTime in SQL Server?

Wie konvertiere ich einen Bigint-UNIX-Zeitstempel in DateTime in SQL Server?

Patricia Arquette
Freigeben: 2025-01-17 16:34:11
Original
523 Leute haben es durchsucht

How to Convert a Bigint UNIX Timestamp to DateTime in SQL Server?

SQL Server: Bigint-UNIX-Zeitstempel in DateTime-Werte umwandeln

Diese Anleitung beschreibt detailliert die Konvertierung von Bigint-UNIX-Zeitstempeln in DateTime-Objekte innerhalb von SQL Server. Der Prozess erfordert eine Formel, um die zeitliche Ungleichheit zwischen den UNIX- und SQL Server-Epochen zu berücksichtigen.

Die Konvertierungsmethode:

Die folgende SQL-Anweisung führt die Konvertierung effektiv durch:

<code class="language-sql">SELECT DATEADD(second, [unixtime], '19700101')
FROM [Table];</code>
Nach dem Login kopieren

Die Formel verstehen:

  • '19700101': Dies stellt die UNIX-Epoche dar – den Ausgangspunkt für UNIX-Zeitstempel (1. Januar 1970, 00:00:00 UTC).
  • DATEADD(second, [unixtime], '19700101'): Die Funktion DATEADD fügt die durch [unixtime] (Ihr Bigint-Zeitstempel) angegebene Anzahl von Sekunden zur UNIX-Epoche hinzu und ergibt die entsprechende DateTime-Wert.

Epochenzeit erklärt:

Die Epochenzeit gibt die Anzahl der Sekunden an, die seit der UNIX-Epoche vergangen sind.

Ansprache des Jahr-2038-Problems:

Die DATEADD-Funktion von SQL Server verwendet ein ganzzahliges Argument für die Anzahl der Sekunden. Zeitstempel, die 2.147.483.647 Sekunden (ungefähr 68 Jahre) überschreiten, führen zu einem arithmetischen Überlauffehler.

Behebung der Einschränkung für das Jahr 2038:

Um dies zu umgehen, teilen Sie den Zeitstempel mithilfe von zwei separaten DATEADD Operationen in Jahre und verbleibende Sekunden auf. Dieser erweiterte Ansatz verarbeitet Zeitstempel über das Jahr 2038 hinaus. (Ein konkretes Beispiel für diesen mehrstufigen Ansatz müsste hier bei Bedarf hinzugefügt werden, um die Aufschlüsselung in Jahre und verbleibende Sekunden anzuzeigen.)

Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen Bigint-UNIX-Zeitstempel in DateTime in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage