SQL Server: Bigint UNIX タイムスタンプを DateTime 値に変換する
このガイドでは、SQL Server 内での bigint UNIX タイムスタンプから DateTime オブジェクトへの変換について詳しく説明します。 このプロセスでは、UNIX と SQL Server のエポック間の時間的な差異を考慮する公式が必要です。
変換方法:
次の SQL ステートメントは効率的に変換を実行します。
<code class="language-sql">SELECT DATEADD(second, [unixtime], '19700101') FROM [Table];</code>
式を理解する:
DATEADD
関数は、[unixtime]
(bigint タイムスタンプ) で指定された秒数を UNIX エポックに加算し、対応する結果を生成します。 DateTime 値。エポックタイムの説明:
エポック時間は、UNIX エポックからの経過秒数を表します。
2038 年問題への対処:
SQL Server の DATEADD
関数は、秒数の整数引数を使用します。 タイムスタンプが 2,147,483,647 秒 (約 68 年) を超えると、算術オーバーフロー エラーが発生します。
2038 年の制限の解決:
これを解決するには、2 つの個別の DATEADD
操作を使用して、タイムスタンプを年と残りの秒に分割します。この拡張アプローチは、2038 年以降のタイムスタンプを処理します。 (必要に応じて、この複数ステップのアプローチの具体的な例をここに追加し、年と残りの秒数への内訳を示す必要があります)
以上がSQL Server で Bigint UNIX タイムスタンプを DateTime に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。