Heim >Datenbank >MySQL-Tutorial >Wie konvertiere ich einen Bigint-UNIX-Zeitstempel in 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>
Die Formel verstehen:
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!