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

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

Barbara Streisand
Barbara StreisandOriginal
2025-01-17 16:36:14900Durchsuche

How to Convert Bigint UNIX Timestamps to DateTime in SQL Server?

SQL Server: Konvertieren von Bigint-UNIX-Zeitstempeln in DateTime

Diese Anleitung zeigt, wie Sie Bigint-UNIX-Zeitstempel effizient in DateTime-Werte in SQL Server konvertieren.

Die primäre Methode besteht in der Verwendung der Funktion DATEADD:

<code class="language-sql">SELECT DATEADD(SECOND, [unixtime], '19700101')
FROM [Table]</code>

Diese Abfrage addiert die Anzahl der Sekunden, die durch die Spalte unixtime dargestellt werden (seit der Unix-Epoche), zum Basisdatum 1. Januar 1970 und ergibt die entsprechende DateTime.

Die Epoche verstehen

Das Datum „19700101“ bezeichnet die Unix-Epoche – den Ausgangspunkt für UNIX-Zeitstempel (1. Januar 1970, 00:00:00 UTC).

Bewältigung des Problems des Jahres 2038: Eine robuste Lösung

Standardmäßige 32-Bit-Ganzzahl-UNIX-Zeitstempel haben eine Einschränkung: Sie laufen am 19. Januar 2038 um 03:14:07 UTC über. Um Zeitstempel nach diesem Datum zu verarbeiten, können wir einen zweistufigen DATEADD-Ansatz anwenden:

<code class="language-sql">DECLARE @t BIGINT = 4147483645;
DECLARE @oneyear INT = 31622400; -- Approximate seconds in a year

SELECT (@t / @oneyear) -- Years to add
SELECT (@t % @oneyear) -- Remaining seconds

-- DateTime calculation for timestamp @t
SELECT DATEADD(SECOND, @t % @oneyear, DATEADD(YEAR, @t / @oneyear, '19700101'));</code>

Diese Methode berechnet zunächst die Anzahl der Jahre und verbleibenden Sekunden und wendet sie dann sequentiell auf das Epochendatum an, um Überlauffehler zu vermeiden und genaue Konvertierungen für Zeitstempel nach 2038 sicherzustellen.

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

Stellungnahme:
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